MVVM Combobox绑定:从更多来源设置和获取数据

时间:2018-09-01 16:50:54

标签: c# wpf mvvm data-binding combobox

在ViewModel类中,我具有Dictionary<int,string>ObservableCollection<int>属性。

private Dictionary<int, string> comboBoxDisplay;
public Dictionary<int, string> ComboBoxDisplay
{
  get { return comboBoxDisplay; }
  set
  {
    comboBoxDisplay = value;
    RaisePropertyChanged("ComboBoxDisplay");
  }
}

public ObservableCollection<int> Data{ get; set; }

在ViewModel类的构造函数中,我向Dictionary<int, string>添加项目,并使用“默认”项目创建ObservableCollection<int>的实例。

ComboBoxDisplay = new Dictionary<int, string>();
ComboBoxDisplay.Add(1, "Never");
ComboBoxDisplay.Add(2, "Rarely");
ComboBoxDisplay.Add(3, "Sometimes");
ComboBoxDisplay.Add(4, "Often");
ComboBoxDisplay.Add(5, "Usually");
ComboBoxDisplay.Add(6, "Allways");


Data = new ObservableCollection<int>{1,1,1,1,1,1};

在XAML中,我有6个ComboBox,例如:

<ComboBox Margin="5" ItemsSource="{Binding ComboBoxDisplay}" SelectedIndex="0" SelectedValuePath="Key" DisplayMemberPath="Value">

它们可以正确显示数据,但我不知道如何将数据从ComboBox绑定到ObservableCollection<int>。每个ComboBox应该绑定到ObservableCollection<int>的特定项目。像ComboBox1 {Binding Data[0].Value}, ComboBox2 {Binding Data[1].Value}

1 个答案:

答案 0 :(得分:2)

您尝试绑定到SelectedValue吗?

SelectedValue="{Binding Data[0]}"