将可观察集合绑定到组合框-我做了研究
本文关键字:组合 观察 集合 绑定 | 更新日期: 2023-09-27 18:11:00
我有几个关于这个问题的帖子,大多数都提供了一个答案。然而,这对我不起作用。组合框仍然不想显示数据。
我想绑定ObservableCollection到组合框。
DropDownElement就是
class DropDownElement
{
public string Key { get; set; }
public string Value { get; set; }
public DropDownElement() { }
public DropDownElement(string key, string value)
{
this.Key = key;
this.Value = value;
}
}
XAML: <ComboBox Name="cbStage"
Style="{StaticResource ComboBoxStyle}"
ItemsSource="{Binding Path=v_stage}"
DisplayMemberPath="Value"
SelectedValuePath="Key"
/>
ViewModel:
(...)
class PacksViewModel : INotifyPropertyChanged
{
public ObservableCollection<DropDownElement> v_stage = new ObservableCollection<DropDownElement>();
(..)
主窗口
public partial class MainWindow : Window
{
PacksViewModel dc = new PacksViewModel();
public MainWindow()
{
InitializeComponent();
dc.stagesFill(); // method that fills v_stage with data from DB
this.DataContext = dc;
}
我做错了什么?
以前我是这样工作的,但现在我想做正确的方式
public MainWindow()
{
InitializeComponent();
cbStage.DataContext = dc.stagesFill(); // in that case method fills collection with data and returns v_stage
}
<ComboBox Name="cbStage"
Style="{StaticResource ComboBoxStyle}"
ItemsSource="{Binding}"
DisplayMemberPath="Value"
SelectedValuePath="Key"
/>
任何想法?
v_stage
必须是一个依赖属性或一个实现INotifyPropertyChanged的属性