使用 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");
这是使用 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");