C# 数据上下文中的数据绑定
我对数据绑定有点陌生,对如何在数据上下文中正确访问“子”对象有疑问。在我的代码中,目前我有一个简单的视图模型对象:C# 数据上下文中的数据绑定,c#,xaml,data-binding,C#,Xaml,Data Binding,我对数据绑定有点陌生,对如何在数据上下文中正确访问“子”对象有疑问。在我的代码中,目前我有一个简单的视图模型对象: class MyViewModel { public Dictionary<int, string> seriesChoices = new Dictionary<int, string>(); ... } 类MyViewModel { 公共词典系列选择=新词典(); ... } 在主窗口中,如果我直接将视图的数据上下文设置为字典,我就能
class MyViewModel
{
public Dictionary<int, string> seriesChoices = new Dictionary<int, string>();
...
}
类MyViewModel
{
公共词典系列选择=新词典();
...
}
在主窗口中,如果我直接将视图的数据上下文设置为字典,我就能够使数据绑定工作:
ViewModel selectValues = new ViewModel();
MyView.DataContext = selectValues.seriesChoices;
....(relevant XAML)
<ComboBox x:Name="ComboBox1"
ItemsSource="{Binding}"
SelectedValuePath="Key"
DisplayMemberPath="Value"
/>
ViewModel selectValues=newviewmodel();
MyView.DataContext=selectValues.seriesChoices;
..(相关XAML)
我想做的是直接将DataContext设置为ViewModel对象,然后指定底层对象,但我似乎无法实现这一点。这是我最近尝试的一件事:
MyView.DataContext = selectValues
....(relevant XAML)
<ComboBox x:Name="ComboBox1"
ItemsSource="{Binding seriesChoices}"
SelectedValuePath="Key"
DisplayMemberPath="Value"
/>
MyView.DataContext=selectValues
..(相关XAML)
绑定只对属性起作用,因此请将您的系列选择
成员更改为属性,然后查看是否有效
class MyViewModel
{
private Dictionary<int, string> _seriesChoices = new Dictionary<int, string>();
public Dictionary<int, string> seriesChoices { get { return _seriesChoices; } }
...
}
类MyViewModel
{
专用词典_seriescoleces=新词典();
公共字典序列选择{get{return\u序列选择;}
...
}
请注意,如果仅使用getter,则可能必须在XAML中向绑定添加Mode=OneWay
还请注意,如果您希望UI响应字典中的更改,这是一整罐蠕虫,请参阅observetecollection
和INotifyPropertyChanged