是否可以在XAML中添加带命令绑定的默认ComboBox条目?

时间:2010-09-28 11:24:02

标签: c# wpf xaml binding

我正在开发我的第一个真正的WPF MVVM模式应用程序。

目前,我在各种屏幕上都有许多ComboBox,它们绑定到相关ViewModel类的Collection类和属性。

它们总是有一个带有文本<Add>的条目,它实际上是一个空对象类,如果绑定到SelectedItem的Property在其<Add>中,我当前用它来触发AddNewObject事件{1}}输出。这让我觉得很麻烦,它根据我的喜好将View与View模型联系得太紧密了。 e.g。

ToString()

然后在ViewModel代码中:

<ComboBox ItemsSource="{Binding AllObjects}" SelectedItem="{Binding SelectedObject}" />

XAML中是否有办法将此额外行添加到ComboBox下拉列表中并将其绑定到 public SomeObjectType SelectedObject { get{return this.fieldSomeObjectType;} set { if(null==value) return; if(value.ToString().Contains(@"<Add>")) { if(null!=this.AddNewObject) { this.AddNewObject; } } } } 命令?

1 个答案:

答案 0 :(得分:1)

您在视图中编写的代码与业务逻辑无关。没关系。 MVVM并没有说你不应该在视图的代码隐藏中有任何东西。显示“添加”是视图的要求,可以通过视图后面的代码来处理。

在ASP.NET中,我一直这样做,我将列表控件数据化为一些数据,但也在html中指定了一些项目,它们将合并它们。你试过吗?

使用CompositeCollection将默认项目与itemsource合并。 http://msdn.microsoft.com/en-us/library/ms742405.aspx