簡體   English   中英

在 WPF 中設置 combobox 上的選定值

[英]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";

這將確保您的cmbVendorsSelectedValue將持有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.

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