[英]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.