DataGrid
üzerinde filtrelemek için ComboBox.SelectedItem
kullanmaya çalışıyorum, ancak SelectedItem
string
olarak erişmekte olan bir sorun yaşıyorum. Şimdiye kadar denediğim şey bu; Bir istisna ile sonuçlanır;ComboBox'ta Filtre Seçili Öğeyi Dize olarak
Additional information: Unable to cast object of type 'System.String' to type 'System.Windows.Controls.ComboBoxItem'.
x.Department
tip string
taşımaktadır. Filtreleme yöntemimde kullanabilmem için SelectedItem
'a nasıl düzgün bir şekilde erişebilirim?
DÜZENLEME: ComboBox öğelerinin nasıl eklendiğini göstermek için;
List<string> distinctList = Employees.Select(i => i.Department).Distinct().ToList();
distinctList.Insert(0, "Everyone");
distinctList.Sort();
departmentComboBox.ItemsSource = distinctList;
Eğer gerçekten bir dizeyse SelectedValue kullanabilirsiniz. Ama eğer aslında sizin sınıfınızsa, eather açık bir dönüşüm kullanın ve gerekli alanı arayın (YourDepartmentClass) departmanıComboBox.SelectedItem.Name örneğin, eather YourDepartmentClass.ToString yöntemini geçersiz kıl ve departmanComboBox.SelectedItem.ToString'i kullanın (String'in üzerine yazmak kötü bir seçenektir)) – Vladimir
Nasıl departmanComboBox.ItemSource ayarlıyorsunuz? ItemSource ComboBoxItems oluşturmak için kullanılır, ComboBoxItems kendileri için kullanamazsınız – Donogst
@Cbreeze teşekkürler, aşağıya bir yanıt ekledim – Donogst