使用 LinqToSql 填充组合框并从中选择一个项目

Populating a Combobox with LinqToSql and choose an item from it

这是使用 Linq-to-SQL 填充组合框的代码:

private void FillEmbCB()
{
    DataClasses1DataContext dc = new DataClasses1DataContext();

    var emb = from e in dc.EMBALLAGES
              select new
                     {
                          e.EMB_CODE,
                          e.EMB_LIB
                     };

    Emb1CB.ItemsSource = emb;
    Emb1CB.SelectedValuePath = "EMB_CODE";
    Emb1CB.DisplayMemberPath = "EMB_LIB";

    Emb1CB.SelectedItem = "HOUSSE PROTEC PALETTE"; // Nothing appears in the combobox
    dc.Dispose();
}

在该代码的末尾,我想从刚刚填充的组合框中选择一个项目,并将其显示在组合框中,但没有出现,组合框始终为空。

这是我的 Xaml 标记:

<ComboBox x:Name="Emb1CB" Width="200" FontSize="12"
          SelectionChanged="Emb1CB_SelectionChanged"/>

SelectedValuePath 用于数据绑定(您应该这样做而不是像这样直接操作 GUI,但那是另一个讨论)。如果您想自己设置 SelectedItem 那么您需要将值设置为包含该值的父对象,例如:

using System.Linq;

Emb1CB.SelectedItem = emb.FirstOrDefault(x => x.EMB_CODE == "HOUSSE PROTEC PALETTE");