繁体   English   中英

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

[英]Is it possible to add a default ComboBox entry with command binding in XAML?

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

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

他们总是有一个带有文本<Add>的条目,这实际上是一个空的对象类,如果绑定到SelectedItem的Property在其ToString()输出中具有<Add> ,则我当前使用它来触发AddNewObject事件。 这给我带来了麻烦,并且将View与View模型联系得太紧密了(我喜欢)。 例如

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

然后在ViewModel代码中:

  public SomeObjectType SelectedObject
  {
    get{return this.fieldSomeObjectType;}
    set
    {
      if(null==value)
        return;
      if(value.ToString().Contains(@"<Add>"))
      {
        if(null!=this.AddNewObject)
        {
          this.AddNewObject;
        }
      }
    }
 }

XAML中是否有一种方法可以将此多余的行添加到ComboBox下拉列表中,并将其绑定到AddNewObject命令?

您在视图中编写的代码与业务逻辑无关。 没关系。 MVVM并不表示视图的代码中不应包含任何内容。 在视图上显示“添加”是必需的,并且可以由视图后面的代码来处理。

在ASP.NET中,我一直在执行以下操作:将列表控件数据绑定到一些数据,但同时在html中指定了一些项目,它将合并它们。 你有尝试过吗?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM