2010-08-17 33 views
9

ItemsSource öğesinin statik List<CustomSettings> seçeneklerine bağlı bir ComboBox'ım var. ComboBox, bir CustomObject sınıfına bağlı bir formun parçasıdır ve bu sınıftaki özelliklerden biri bir CustomSettingProperty'dir.WPF - Combobox SelectedItem ayarlanmıyor mu?

ComboBox'ın SelectedItem öğesini CustomObject'te belirtilen özelliğe bağlamak istiyorum, ancak SelectedItem="{Binding Path=CustomSettingProperty}" varsayılan seçili öğeyi ayarlamıyor. Kesme noktalarını kullanma get; yöntemini çağırdığını görebiliyorum, bu yüzden sorunun CustomSettingProperty'nin List<CustomObject>'dan ayrı olarak oluşturulmuş olabileceğini düşünüyorum, bu yüzden WPF aynı öğe olduğunu düşünmüyor.

Bunu yapmanın kolay bir yolu var mı? Ya da CustomSettings sınıfının bir Kimlik içermesi nedeniyle belki de bir alternatif?

+0

Eğer CustomSettingProperty için kod verebilir misiniz? Ve muhtemelen nasıl ayarlandığınıza dair bir örnek? – jsmith

cevap

20

Seçilen öğe, Listede yer alan aynı örnek değilse, ComboBox'ın aynı nesne olduğunu bilmesini sağlamak için CustomObject öğesinde Equals() öğesini geçersiz kılmanız gerekir.

o aynı örneği var belki böyle iki-yollu için BindingMode ayarlama gibi sadece basit bir şey ise:

SelectedItem="{Binding Path=CustomSettingProperty,Mode=TwoWay}" 
+1

Teşekkürler! Eşitliklerin üstesinden gelmeyi düşünmediğime inanamıyorum ... Bu hatayı tekrar yapmayacağım (umarım) – Rachel

+0

Aynı sorunu yaşıyorum ama geçersiz kıldım 'Equals()' Nasıl ayarlayabilirim BindingMode? Not: C# ve Winforms kullanıyorum –

+0

Mod, varsayılan olarak TwoWay değil mi? –

İlgili konular