如何在 wpf 中动态添加组合框项

本文关键字:添加 组合 动态 wpf | 更新日期: 2023-09-27 18:18:59

我是WPF的新手,

我正在将项目动态添加到组合框中,如下所示

   objComboBox.Items.Add("<--Select-->");

现在我需要为特定项目设置值和索引。在 asp.net 我正在做

DropDownList1.Items.FindByText("<--Select-->").Value ="-1" 

我在 wpf 中找不到合适的方法。 我该怎么做?

如何在 wpf 中动态添加组合框项

XAML:

<ComboBox ItemsSource="{Binding cbItems}" SelectedItem="{Binding SelectedcbItem}"/>

代码隐藏:

public ObservableCollection<ComboBoxItem> cbItems { get; set; }
public ComboBoxItem SelectedcbItem { get; set; }
public MainWindow()
{
    InitializeComponent();
    DataContext = this;
    cbItems = new ObservableCollection<ComboBoxItem>();
    var cbItem = new ComboBoxItem { Content = "<--Select-->" };
    SelectedcbItem = cbItem;
    cbItems.Add(cbItem);
    cbItems.Add(new ComboBoxItem { Content = "Option 1" });
    cbItems.Add(new ComboBoxItem { Content = "Option 2"});
}

始终尽量避免直接访问 UI。使用binding将数据绑定到控件并addsearchremove等等...仅在数据上。更改 UI 将负责 WPF 绑定本身。

示例:http://www.codeproject.com/KB/WPF/DataBindingWithComboBoxes.aspx

  combo.SelectedIndex = combo.Items.IndexOf("<--Select-->");

但更好的方法是使用 snurre 提到的绑定

如果它是列表中的第一个,则应使用:objComboBox.SelectedIndex = 0;或下拉列表1.选定索引 = 0;

如果不是第一个,请使用:objComboBox.SelectedItem = "<--Select-->";或DropDownList1.SelectedItem = "<--Select-->";