ben bir ComboBox
ait ItemSource
bir PrintQueue
arasında PageMediaSize
koleksiyonunu bağlayıcı ediyorum değil ComboBox SelectedItem bağlanma WPF (Bu iyi çalışıyor). Daha sonra ComboBox
'un SelectedItem
numaralarını PrintQueue
'un DefaultPrintTicket.PageMediaSize
numaralarına bağlarım. Bu, DefaultPrintTicket.PageMediaSize
seçili değeri ayarlayacaktır, ancak DefaultPrintTicket.PageMediaSize
başlangıç değerine göre ComboBox
başlangıç değeri ayarlanmamıştır. Bunun nedeni, DefaultPrintTicket.PageMediaSize
başvurusunun koleksiyondaki herhangi bir referansla uyuşmamasıdır. Ancak, nesneleri referans ile karşılaştırmak istemiyorum, ancak değer yerine PageMediaSize
, Eşittir'i geçersiz kılmaz (ve üzerinde hiçbir denetimim yoktur). Gerçekten yapmak istediğim,için IComparable
'u kullanmaktır, ancak bunu yapmanın bir yolunu görmüyorum. Bir Converter
kullanmayı denedim, ancak değerden daha fazlasına ihtiyacım vardı ve koleksiyonun ConverterProperty
'a nasıl geçeceğini anlayamadım. Bu sorunu nasıl ele alacağınıza dair herhangi bir fikir.referans ItemsSource
İşte benim 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"/>
Ve PageMediaSize
Koleksiyon
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();
}
}
Edit ben karşılık gelen referansa DefaultPrintTicket.PageMediaSize
ayarlama çalıştı
alır dönüştürücü kod InitializeComponent
'dan önce koleksiyon, ama bu kötü değildi k. ComboBox
'dan bir şey seçtiğimde kesinlikle değer ayarlıyor, ancak başka yöne gitmiyor gibi görünüyor.