我有一個綁定到List<Person>
(ItemsSource在CodeBehind中設置)的組合框。在依賴於屬性的組合框中顯示項目
<ComboBox Width="120" Background="White" DisplayMemberPath="Name" />
因此,所有人員的姓名添加到列表中。
因爲沒有必要在組合框中顯示每個名稱,所以我添加了屬性Hide
,其類型爲bool
。如果此屬性設置爲true,則該名稱不應顯示在組合框中。
但是怎麼可能爲組合框的綁定添加一個條件,以便只列出那些不應該被隱藏的人。
編輯: 對於答案,我添加以下代碼:
{
List<Person> persons;
...
var collectionView = CollectionViewSource.GetDefaultView(persons);
collectionView.Filter = HideFilter;
}
...
private bool HideFilter(object item)
{
Person p = item as Person;
return p.Hide;
}
但是,這將引發對collectionView.Filter = HideFilter;
一個TargetInvocationException。
我誤解了什麼?
請參閱http://msdn.microsoft.com/en-us/library/ms752348.aspx。 –