में मैं एक PrintQueue
की PageMediaSize
संग्रह एक ComboBox
की ItemSource
के लिए बाध्य कर रहा हूँ (यह ठीक काम करता है)। फिर मैं SelectedItem
ComboBox
PrintQueue
के DefaultPrintTicket.PageMediaSize
पर SelectedItem
बाध्यकारी हूं। हालांकि यह चयनित मान DefaultPrintTicket.PageMediaSize
पर सेट करेगा ठीक है, यह ComboBox
के प्रारंभिक रूप से चयनित मान को DefaultPrintTicket.PageMediaSize
के प्रारंभिक मान पर सेट नहीं करता है क्योंकि यह DefaultPrintTicket.PageMediaSize
संदर्भ संग्रह में किसी भी संदर्भ से मेल नहीं खाता है। हालांकि मैं नहीं चाहता कि यह संदर्भ के अनुसार वस्तुओं की तुलना करें, लेकिन इसके बजाय मूल्य के अनुसार, लेकिन PageMediaSize
बराबर ओवरराइड नहीं करता है (और मेरे पास इसका कोई नियंत्रण नहीं है)। मैं वास्तव में क्या करना चाहूंगा IComparable
ComboBox
के लिए उपयोग करने के लिए, लेकिन मुझे ऐसा करने का कोई तरीका नहीं दिख रहा है। मैंने Converter
का उपयोग करने का प्रयास किया है, लेकिन मुझे मूल्य से अधिक की आवश्यकता होगी और मुझे पता नहीं लगा कि संग्रह को ConverterProperty
पर कैसे पास किया जाए। इस समस्या को संभालने के तरीके पर कोई विचार।WPF ComboBox SelectedItem के लिए बाध्य जब संदर्भ नहीं ItemsSource
यहाँ मेरी XAML
<ComboBox x:Name="PaperSizeComboBox"
ItemsSource="{Binding ElementName=PrintersComboBox, Path=SelectedItem,
Converter={StaticResource printQueueToPageSizesConverter}}"
SelectedItem="{Binding ElementName=PrintersComboBox,
Path=SelectedItem.DefaultPrintTicket.PageMediaSize}"
DisplayMemberPath="PageMediaSizeName"
Height="22"
Margin="120,76,15,0"
VerticalAlignment="Top"/>
और वह PageMediaSize
संग्रह हो जाता है
public class PrintQueueToPageSizesConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return value == null ? null :
((PrintQueue)value).GetPrintCapabilities().PageMediaSizeCapability;
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
संपादित
मैं में इसी संदर्भ को DefaultPrintTicket.PageMediaSize
स्थापित करने की कोशिश की कनवर्टर के लिए कोड है InitializeComponent
से पहले संग्रह, लेकिन यह बुरा नहीं था कश्मीर। यह निश्चित रूप से मूल्य निर्धारित करता है जब मैं ComboBox
से कुछ चुनता हूं, लेकिन ऐसा लगता है कि यह दूसरी तरफ नहीं लगता है।