WPF:带重置项的ComboBox

Sta*_*eff 11 .net c# wpf xaml combobox

我想在WPF中创建一个null顶部有一个项目的ComboBox,当选中此项时,SelectedItem应设置为null(重置为默认状态).我一直在搜索,但没有找到令人满意的解决方案.

如果可能的话,我希望它只使用XAML代码或附加行为,因为我不喜欢在ViewModel中更改View或覆盖标准控件.

这是我到目前为止提出的(缩短代码):

[...]
<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>
[...]
Run Code Online (Sandbox Code Playgroud)

OpenCombo

我认为最好的办法就是以某种方式添加一个事件触发器,设置SelectedIndex-1当项目被选中,但这里是我卡住了.

任何想法如何做到这一点?或者更好的方式,如附加行为?

And*_*bov 7

考虑为"无"组合框项目实现Null对象模式,并将此项目添加到项目列表中.然后实现用于在该类中保存null对象的自定义逻辑,或者仅检查所选项是否为NullItem类型.


Ram*_*esh 0

删除以下行并添加一个复选框,然后您可以执行您的自定义操作。

    <ComboBoxItem>(None)</ComboBoxItem>
Run Code Online (Sandbox Code Playgroud)