簡體   English   中英

如何將通用項添加到綁定到WPF中的集合的ComboBox

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM