如何通过组合框中选定项目的数据绑定启用wpf控件

时间:2011-07-15 08:53:28

标签: wpf wpf-controls binding

我正在寻找一种方法,可以在选择组合框中的项目时启用控件。当用户从组合框中选择一个项目然后启用另一个控件时,是否有一种简单的数据绑定方式?

2 个答案:

答案 0 :(得分:1)

如果您正在使用MVVM,则可以将组合框的SelectedItem绑定到视图模型中的属性。

说这是你的组合框:

<ComboBox ItemsSource="{Binding widgetlist}" SelectedItem="{Binding Path=selectedwidget, Mode=TwoWay}"></ComboBox>

这是你的控制:

<DockPanel IsEnabled="{Binding controlenabled}">
    ...
</DockPanel>

然后在selectedwidget的setter中,您可以将controlenabled属性更改为False或True。不要忘记通知controlenabled属性已更改(或者如果需要,请使controlenabled成为DependencyProperty。)

总之,您有3个要绑定的属性:

  • widgetlist,一个ObservableCollection或其他一些作为你的组合框来源的集合

  • selectedwidget,该集合类型的项目更改为当前所选的组合框

  • controlenabledbool,其他控件会查看是否启用/禁用它们。

与MVVM中的许多示例一样,这种方式可能需要在开始时稍微考虑更多的思想和代码,但以后会更加可维护和可扩展。例如,假设您希望更多控件也可以根据相同的方案启用/禁用自身。一块蛋糕:向他们添加IsEnabled="{Binding controlenabled}">

答案 1 :(得分:0)

是。您希望绑定到要动态启用或禁用的目标控件中的IsEnabled,并使用Value Converter将匹配的字符串或项目从ComboBox转换为真值以便启用。