为什么我不能使用带有按钮的IsEnabled属性的多绑定?

时间:2013-04-29 16:38:09

标签: wpf button binding multibinding isenabled

我正在尝试使用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属性?

感谢。

1 个答案:

答案 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个对象)