Если вы используете MVVM, вы можете привязать SelectedItem
поля со списком к свойству в вашей модели представления.
Скажите, что это ваш поле со списком:
<ComboBox ItemsSource="{Binding widgetlist}" SelectedItem="{Binding Path=selectedwidget, Mode=TwoWay}"></ComboBox>
И этоваш контроль:
<DockPanel IsEnabled="{Binding controlenabled}">
...
</DockPanel>
Затем в установщике selectedwidget
вы можете изменить свойство controlenabled
на False или True.Не забудьте уведомить, что свойство controlenabled
изменилось (или, если хотите, сделать controlenabled
DependencyProperty.)
В итоге у вас есть 3 свойства для привязки:
widgetlist
, коллекция ObservableCollection или какая-либо другая коллекция, которая является источником для вашего комбинированного списка
selectedwidget
, элемент этого типа коллекции, который изменяется нанезависимо от того, что в данный момент выбран в списке,
controlenabled
, bool
, на который смотрят другие элементы управления, чтобы определить, включены они или отключены.
Как и многие примерыв MVVM этот способ может потребовать чуть больше обдумывания и кода с самого начала, но будет гораздо более удобен в обслуживании и масштабируем позже.Например, скажем, вы хотите, чтобы некоторые дополнительные элементы управления также включали / отключали себя в соответствии с тем же сценарием.Кусок пирога: добавьте к ним IsEnabled="{Binding controlenabled}">
.