我想在 WPF 中制作一个 ComboBox,其顶部有一个 null
项目,当它被选中时,SelectedItem 应该设置为 null(重置为默认状态)。我一直在寻找,但没有找到令人满意的解决方案。
如果可能的话,我希望它仅使用 XAML 代码或附加行为来执行此操作,因为我真的不喜欢更改 View 的 ViewModel 中的内容或覆盖标准控件。
这是我到目前为止的想法(缩短的代码):
[...]
<Popup x:Name="PART_Popup" [...]>
<Border x:Name="PopupBorder" [...]>
<ScrollViewer x:Name="DropDownScrollViewer" [...]>
<StackPanel [...]>
<ComboBoxItem>(None)</ComboBoxItem>
<ItemsPresenter x:Name="ItemsPresenter"/>
</StackPanel>
</ScrollViewer>
</Border>
</Popup>
[...]
我认为最好的方法是以某种方式添加一个事件触发器,当项目被选中时将 SelectedIndex
设置为 -1
,但我在这里卡住了。
任何想法如何做到这一点?或者更好的方法,比如附加行为?
最佳答案
考虑实现 Null Object Pattern对于“无”组合框项目,并将此项目添加到您的项目列表中。然后实现用于在该类中保存空对象的自定义逻辑,或者只检查所选项目是否为 NullItem 类型。
关于c# - WPF:带有重置项的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16009629/