C# WPF IsEnabled 使用多个绑定?
我有一个描述 GUI 部分的 WPF xaml 文件,我希望特定控件的启用/禁用依赖于其他两个控件。 代码目前看起来像这样:
<ComboBox Name="MyComboBox"
IsEnabled="{Binding ElementName=SomeCheckBox, Path=IsChecked}"/>
但我希望它也依赖于另一个复选框,因此类似于:
<ComboBox Name="MyComboBox"
IsEnabled="{Binding ElementName=SomeCheckBox&AnotherCheckbox, Path=IsChecked}"/>
最好的方法是什么? 我不禁觉得我错过了一些明显的东西或者以错误的方式处理这件事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
您可以使用
MultiBinding
使用实现 < 的转换器代码>IMultiValueConverter。只是为了给出答案,您可以(几乎)复制和粘贴:
所需的静态资源:
组合框:
转换器的代码:
You can use a
MultiBinding
with a converter which implementsIMultiValueConverter
.Just to give an answer you can (almost) copy&paste:
Static resource needed:
The ComboBox:
The code for the converter:
您也可以尝试相同的较短版本:
当然,您可能也需要转换器来提高可见性:
You can also try shorter version of the same:
and, of course, you may need the converters for visibility, too:
我相信您可能必须将 MultiBinding 与 MultiValueConverter 一起使用。 请参阅此处:http://www.developingfor.net/wpf/multibinding-in- wpf.html
这是一个直接相关的示例:http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5b9cd042-cacb-4aaa-9e17-2d615c44ee22
I believe you may have to use a MultiBinding with a MultiValueConverter. See here: http://www.developingfor.net/wpf/multibinding-in-wpf.html
Here is a directly related example: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/5b9cd042-cacb-4aaa-9e17-2d615c44ee22
作为 qqbenq 答案的扩展:
添加了处理 Collection 的
Count
的函数,例如,如果您想检查ListView
的某些项目是否被选择。转换器:
命名空间
按钮
As extension to qqbenq's answer:
Added the function to handle the
Count
of a Collection for example if you want to check if some item of aListView
is selected.Converter:
Namespace
<theNamespace:IsEnabledConverter x:Key="IsEnabledConverter"/>
Button
当您不想
在此处使用 MultiBinding XAML 代码时(当您使用继承的控件时会更加简化)。
When you don't want to use MultiBinding
XAML code here (is more simplified when you use inherited controls).