[英]Set Selected value on combobox in WPF
我有一個簡單的 WPF 和一個 combobox; 當我使用新數組作為項目源(代碼中的注釋行)時,我可以通過設置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>
Combobox 的DisplayMemberPath
將只控制需要顯示的內容; SelectedValue
仍然是您的Model
類型。 你需要設置
cmbVendors.SelectedValuePath = "Name";
這將確保您的cmbVendors
的SelectedValue
將持有Name
。
我想要做什么:這是一個編輯表單。 加載表單時,應通過表格中的數據填充表單、文本框、組合框...中的所有組件。 cmbVendors 和其他組件一樣應該顯示從 DB 獲取的內容,如果用戶想更改它,他可以做到。 然后點擊提交......
我已經編輯了 FillForm 方法,如下所示:
private void FillForm(int ID0)
{
cmbVendors.SelectedValuePath = "Name";
cmbVendors.SelectedValue = mydb.tbl_Company.Where(c => c.Id == ID0).Single().Name;
}
謝謝。 它運作良好!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.