我想在綁定組合框後將項目添加到組合框中。 例如:如何在綁定wpf後將項目插入組合框
this.cbCategory.ItemsSource = categoryList;
this.cbCategory.DisplayMemberPath = "CategoryName";
this.cbCategory.SelectedValuePath = "CategoryID";
我想補充( 「全部」, 「%」)作爲第一個。
Geetha。
我想在綁定組合框後將項目添加到組合框中。 例如:如何在綁定wpf後將項目插入組合框
this.cbCategory.ItemsSource = categoryList;
this.cbCategory.DisplayMemberPath = "CategoryName";
this.cbCategory.SelectedValuePath = "CategoryID";
我想補充( 「全部」, 「%」)作爲第一個。
Geetha。
這是非常簡單的使用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。
如果您稍後嘗試添加並且不再接收更新,您將破壞綁定。
爲什麼不在綁定之前添加「額外」項目?
嗨,我使用的是存在於同一解決方案的其他項目中的類。 public class Category { /// ///獲取或設置類別ID。 /// /// 類別ID。 public string CategoryID {get;組; } /// ///獲取或設置類別的名稱。 /// /// 類別的名稱。 public string CategoryName {get;組; } } 那我怎麼稱呼它呢。 –
Geeth
2010-07-16 09:34:15
您可以通過設置適當的XML名稱空間來引用任何類。例如,'xmlns:otherProject =「clr-namespace:NamespaceInOtherProject; assembly = OtherAssembly」'。然後,而不是''你寫''。 –
2010-07-17 04:19:47