コンボボックスはList<Person>
にバインドされています(ItemsButtonにItemsSourceが設定されています)。コンボボックスのプロパティをプロパティに応じて表示する
<ComboBox Width="120" Background="White" DisplayMemberPath="Name" />
だから、すべての人の名前がリストに追加されます。
ComboBoxにすべての名前を表示する必要はないため、bool
のプロパティHide
を追加しました。このプロパティがtrueに設定されている場合、名前はコンボボックスに表示されません。
しかし、コンボボックスのバインディングにどのように条件を追加すると、隠されていないと思われる人物だけがリストに表示されるようになりますか?
EDIT: についての答えは、私は次のコードを追加:
{
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を参照してください。 –