Как включить / отключить элементы comboBox для различных comboBox в wpf, щелкнув один из них, используя шаблон MVVM? - PullRequest
0 голосов
/ 16 апреля 2019

Я создаю проект, используя шаблон MVVM. В моем представлении я создаю комбо-боксы. В ViewModel я создаю ObservableCollection для ItemsSource для комбинированных списков со строковыми значениями:

public ObservableCollection<string> ComboBoxItems
    {
        get; set;
    }

В конструкторе ViewModel я создаю список моделей (foreach comboBox). У моего класса Model есть только два свойства: SelectedComboBoxItem и IsEnabledComboBoxItem.

Я хочу иметь логику, например, если я выберу один элемент в одном комбинированном списке, он будет отключен в этом комбинированном окне и во всех остальных. Как я мог сделать это с Binding? Теперь мой xaml-код выглядит следующим образом, но он отключил только выбранный элемент comboBox и только в одном comboBox, откуда он был вызван:

<ComboBox  ItemsSource="{Binding ComboBoxItems}"
           SelectedItem="{Binding SelectedComboBoxItem }" IsEditable="True">
      <ComboBox.ItemContainerStyle>
             <Style TargetType="ComboBoxItem">
                  <Setter Property="IsEnabled" Value="{Binding IsEnabledComboBoxItem}" />
             </Style>
      </ComboBox.ItemContainerStyle>
</ComboBox>

1 Ответ

0 голосов
/ 14 мая 2019

Чтобы включить / отключить элементы comboBox, я использовал конвертер для них в xaml, где передаются все выбранные значения из всех комбинированных списков (коллекция в ViewModel). В моем классе конвертера я сделал нужную мне проверку и возвратил значение bool (есть элемент в коллекции во ViewModel или нет). Может быть, это кому-нибудь поможет.

...