在WPF中的组合框中设置所选值

问题描述 投票:1回答:2

我有一个带有组合框的简单WPF;当我使用新数组作为itemssource(代码中的COMMENTED LINE)时,可以通过设置SelectedValue="..."(另一个查询结果中的字符串)来设置默认值。但是当我使用查询并从数据库读取时。添加项目可以,但是设置SelectedValue的工作不起作用!

我的xaml.cs代码:

tempdbEntities mydb = new tempdbEntities();
public MainWindow()
{
    InitializeComponent();
    FillForm(1);
}

private void Window_Activated(object sender, EventArgs e)
{
    //cmbVendors.ItemsSource = new string[] { "ABC", "BCD", "EFG" };

    cmbVendors.ItemsSource = mydb.tbl_Company.Where(c => c.Id < 5).ToList();
    cmbVendors.DisplayMemberPath = "Name";    
}

private void FillForm(int ID0)
{    
    cmbVendors.SelectedValue = mydb.tbl_Company.Where(c => c.Id == ID0).Single().Name;    
}

Xaml代码:

<Grid Margin="0,-41,0,0">
    <ComboBox Name="cmbVendors" HorizontalAlignment="Left" 
              Margin="474,102,0,0" VerticalAlignment="Top" 
              Width="231"/>    
</Grid>
c# wpf combobox selectedvalue
2个回答
0
投票
组合框的DisplayMemberPath仅控制需要显示的内容; SelectedValue将仍然是您的Model类型。您需要设置

cmbVendors.SelectedValuePath = "Name";

这将确保您的cmbVendorsSelectedValue将保持Name

0
投票
我想做什么:这是一个编辑表单。加载表单时,应使用表中的数据填充表单,文本框,组合框...中的所有组件。像其他组件一样,cmbVendors应该显示从数据库获取的内容,如果用户想要更改它,则可以执行。然后单击提交。...

所以我该怎么办? (我是WPF编程的新手)

© www.soinside.com 2019 - 2024. All rights reserved.