我有几个关于这个问题的线索,其中大多数提供了一个答案。然而,它对我不起作用。 Combobox仍然不想向我展示数据。
我想将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"
/>
视图模型:
(...)
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"
/>
有什么想法吗?
答案 0 :(得分:0)
v_stage
必须是依赖属性或实现INotifyPropertyChanged的属性