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