如何在 wpf 中动态添加组合框项
本文关键字:添加 组合 动态 wpf | 更新日期: 2023-09-27 18:18:59
我是WPF的新手,
我正在将项目动态添加到组合框中,如下所示
objComboBox.Items.Add("<--Select-->");
现在我需要为特定项目设置值和索引。在 asp.net 我正在做
DropDownList1.Items.FindByText("<--Select-->").Value ="-1"
我在 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
将数据绑定到控件并add
、search
、remove
等等...仅在数据上。更改 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-->";