数据绑定WPF ComboBox与'新...'项目

Ter*_*lis 5 c# data-binding wpf controls combobox

大家好
我有一个组合框,它可以数据绑定到一个元素列表.但除了那个元素列表,我想要另一个项目.这个项目应该显示文本'New ...'
的想法是,如果他们选择一个普通元素,它会执行一些涉及该元素的动作.如果他们选择"新建"元素,则会将他们带到可以创建新项目的屏幕.
问题是,当你对某些东西进行数据绑定时你不能选择添加另一个项目,并且不存在将虚拟项目添加到元素列表中的问题......

这是一个基于具有'DefaultElement'属性的ComboBox创建新控件的机会吗?(包含所有相关的模板和命令绑定等)

Sim*_*ele 5

为此,我之前为普通类型创建了一个虚拟包装类,允许您绑定到包含大多数正确值的列表以及"New ..."一个,例如

public class DisplayClass
{
    public DisplayClass(ModelClass mc)
    {
         this.mc = mc;
    }

    public string Name
    {
        get { return this.mc != null ? this.mc.Name : "New..."; }
    }

    public bool IsDummy
    {
        return this.mc == null;
    }

    public ModelClass Model
    {
        return this.mc;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以在数据上下文(ViewModel)中托管这些集合,并根据具体情况处理选择IsDummy.它不像内置此功能的控件那样自动,但非常简单,可以很容易地变成通用的,因此可以重复使用.