我假设您的意思是您有一个具有特殊类型属性的对象列表,并且您希望根据该属性的值过滤此列表。我还假设您知道通常用于开发 WPF 应用程序的 MVVM 模式:
您的视图模型需要枚举类型的属性。让我们称之为SelectedFilter
。您的视图模型需要所有现有枚举值的列表。让我们称之为AvailableFilters
。您的视图模型需要所有消息的列表。让我们称之为Messages
。您的视图模型需要一些消息的列表。让我们称之为FilteredMessages
。
您的 ViewModel 需要实现INotifyPropertyChanged。
您的 AvailableFilters 绑定到ItemsSource
您的 ComboBox。您的 SelectedFilter 绑定到SelectedItem
您的 ComboBox。您的 FilteredMessages 绑定到ItemsSource
您的 ListBox。
每当您进行SelectedFilter
更改时,请使用 LinQ(或循环)仅将其Messages
放入FilteredMessages
合适的位置。确保您也发出 NotifyPropertyChanged 信号FilteredMessages
。
在很短的时间内获得了很多信息,请确保您阅读了一些关于 的教程,Data Binding in WPF
如果您不确定我在说什么。INotifyPropertyChanged
MVVM