簡體   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