c#中ComboBox如何绑定ObservableCollection
时间: 2024-03-13 18:42:27 浏览: 125
在C#中,你可以使用以下步骤来绑定一个ObservableCollection到ComboBox上:
1. 在XAML中定义ComboBox:
```
<ComboBox x:Name="comboBox" ItemsSource="{Binding Items}" DisplayMemberPath="Name" SelectedValuePath="Id" />
```
2. 在ViewModel中定义ObservableCollection和SelectedItem属性:
```
public class ViewModel
{
public ObservableCollection<Item> Items { get; set; }
public Item SelectedItem { get; set; }
public ViewModel()
{
// 初始化ObservableCollection
Items = new ObservableCollection<Item>();
Items.Add(new Item() { Id = 1, Name = "Item 1" });
Items.Add(new Item() { Id = 2, Name = "Item 2" });
Items.Add(new Item() { Id = 3, Name = "Item 3" });
// 设置默认选中的项
SelectedItem = Items[0];
}
}
```
3. 在窗口或页面的构造函数中设置DataContext:
```
public MainWindow()
{
InitializeComponent();
// 设置DataContext
DataContext = new ViewModel();
}
```
4. 运行程序,可以看到ComboBox中已经绑定了ObservableCollection中的数据,同时也可以通过SelectedItem属性获取选中的项。
注意:当ObservableCollection中的项发生改变时,ComboBox会自动更新。如果想手动更新ComboBox,可以调用comboBox.Items.Refresh()方法。
阅读全文