我创建了一个继承自Combobox的FilterCombobox。 此FilterCombobox根据用户输入过滤结果。 在我看来,我有两个这样的FilterCombobox,它们引用相同的ObserveableCollection。
如果我有两个单独的ObserveableCollection,那么这个问题不会调用,所以我误认为我的过滤方法对实际的ObserveableCollection做了一些事情。
过滤方法:
private void SetFilterToTextInput()
{
Items.Filter += a =>
{
var propertyString = GetPropertyString(a);
if (propertyString.ToUpper().Contains(Text.ToUpper()))
return true;
return false;
};
}
这是我对这两个FilterComboboxes的XAML实现:
<Controller:FilterComboBox
ItemsSource="{Binding Path=Collection,UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
DisplayMemberPath="Name"
SelectedValue="{Binding Left, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
Width="135"
/>
<TextBlock Margin="0,5,5,0" FontSize="16" VerticalAlignment="Center" >-</TextBlock>
<Controller:FilterComboBox
ItemsSource="{Binding Path=Collection, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}"
DisplayMemberPath="Name"
SelectedValue="{Binding Right, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}"
Width="135"
/>