我正在尝试使用multibinding设置按钮的IsEnabled属性,因为此属性取决于三个变量。
如果我设置内容合适,我可以使用此代码:
<Button Height="23" HorizontalAlignment="Left" Margin="629,49,0,0" Name="btnMyButton" VerticalAlignment="Top" Width="75">
<Button.Content>
<MultiBinding Converter="{StaticResource myMultiValueConverter}">
<Binding ElementName="MyElement"/>
<Binding />
</MultiBinding>
</Button.Content>
</Button>
我尝试使用此代码:
<Button Height="23" HorizontalAlignment="Left" Margin="629,49,0,0" Name="btnMyButton" VerticalAlignment="Top" Width="75">
<Button.IsEnabled>
<?????
但是在这种情况下,尽管Button.IsEnabled是可用的,但在下一行中我找不到Multibinding关键字,所以我不能使用带有IsEnabled属性的multibinding。
为什么呢?有没有办法用多值转换器设置IsEnabled属性?
感谢。
答案 0 :(得分:3)
语法应与Button.Content
的语法完全相同 - 只需将"Content"
替换为"IsEnabled"
即可。
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource myMultiValueConverter}">
<Binding ... />
<Binding ... />
<Binding ... />
</MultiBinding>
</Button.IsEnabled>
它可能不会自动完成,因为IsEnabled
属性需要一个布尔值,而不是MultiBinding
对象,但它不应该给你任何错误,并且会编译并执行就好了
(它为Button.Content
自动完成,因为Content
属性的类型为object
,其中包含MultiBinding
个对象)