2010-07-16 89 views
2

我想在綁定組合框後將項目添加到組合框中。 例如:如何在綁定wpf後將項目插入組合框

this.cbCategory.ItemsSource = categoryList; 
     this.cbCategory.DisplayMemberPath = "CategoryName"; 
     this.cbCategory.SelectedValuePath = "CategoryID"; 

我想補充( 「全部」, 「%」)作爲第一個。

Geetha。

回答

9

這是非常簡單的使用CompositeCollection:

<ComboBox DisplayMemberPath="CategoryName" SelectedValuePath="CategoryID"> 
    <ComboBox.ItemsSource> 
    <CompositeCollection> 
     <my:Item CategoryName="All" CategoryID="%" /> 
     <CollectionContainer Collection="{Binding CategoryList}" /> 
    </CompositeCollection> 
    </ComboBox.ItemsSource> 
</ComboBox> 

工作原理:該CompositeCollection produes「全部」項,然後所有的所屬分類集合中的項目。請注意,<my:Item ... />是您的物品類的構造函數。您需要將其更改爲實際的名稱空間和類名稱。

重要建議:我注意到你在代碼隱藏中設置了一些ComboBox屬性。這是一個非常糟糕的做法。您應該如上所示使用XAML。

+0

嗨,我使用的是存在於同一解決方案的其他項目中的類。 public class Category { ///

///獲取或設置類別ID。 /// /// 類別ID。 public string CategoryID {get;組; } /// ///獲取或設置類別的名稱。 /// /// 類別的名稱。 public string CategoryName {get;組; } } 那我怎麼稱呼它呢。 – Geeth 2010-07-16 09:34:15

+0

您可以通過設置適當的XML名稱空間來引用任何類。例如,'xmlns:otherProject =「clr-namespace:NamespaceInOtherProject; assembly = OtherAssembly」'。然後,而不是''你寫''。 – 2010-07-17 04:19:47

0

如果您稍後嘗試添加並且不再接收更新,您將破壞綁定。

爲什麼不在綁定之前添加「額外」項目?