Связывание MVVM Combobox: установка и получение данных из других источников - PullRequest
0 голосов
/ 01 сентября 2018

В моем классе 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 голосов
/ 02 сентября 2018

Вы пробовали привязку к SelectedValue?

SelectedValue="{Binding Data[0]}"
...