[英]How do you add a generic item to a ComboBox bound to a collection in WPF
我在WPF應用程序中有一個ComboBox,它綁定到C#ViewModel類中的Department對象的ObservableCollection。 我想使用組合框按部門過濾另一個集合(現在它確實適用於此)問題是我想在列表頂部添加一個額外的選項“全部”。 有沒有正確的方法來做到這一點。 制作假部門在很多方面都是錯誤的。
ComboBox
<ComboBox ItemsSource="{Binding Path=Departments}"
SelectedValue="{Binding Path=DepartmentToShow , Mode=TwoWay}" />
您可以使用CompositeCollection作為ComboBox的ItemsSource以包含“All”選項。 您需要將CollectionContainer的Collection屬性設置為“Department對象的ObservableCollection”。
<ComboBox >
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem>All</ComboBoxItem>
<CollectionContainer x:Name="departmentCollection"/>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
不確定這是否適合您的過濾情況但是......
假設您有一個名為MyCombo
的ComboBox,一個名為MyEntity
的實體與名為MyDomainService
的DomaineService相關聯。
不要忘記
using System.ServiceModel.DomainServices.Client;
當然,與您的實體和DomainService的Web站點一起使用也很好
你打電話給Proc命名:
void LoadEntities()
{
MyDomainService_Context = new MyDomainService();
EntityQuery<MyEntity > mQuery = null;
mQuery = from q in _Context.GetMyDomainServiceQuery()
select q;
LoadOperation<MyEntity > loadOpLoadEntities = _Context.Load(mQuery, LoadOpLoadEntitiesCallBack, null);
}
然后在CallBack
函數中:
void LoadOpLoadEntitiesCallBack(LoadOperation<MyEntity> loadOperation)
{
if (loadOperation.Entities.Count() > 0)
{
List<MyEntity> mList = new List<MyEntity>();
MyEntity mE = new MyEntity();
mE.Column1 = -1;
mE.Column2 = "Default value";
mList.Add(mE);
for (int i = 0; i < loadOperation.Entities.Count(); i++)
{
mList.Add(loadOperation.Entities.ToList()[i]);
}
this.MyCombo.ItemsSource = mList.ToList();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.