我正在尝试将按钮绑定到文本框的CanUndo属性,除了我无法使其工作。我试过像
这样的直接绑定IsEnabled="{Binding CanUndo, ElementName=txtDocument}"
但那没用。即使在键入文本框后按钮仍然处于禁用状态,这会将CanUndo属性更改为true。
我也试过
<Button IsEnabled="False" >
<Button.Resources>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding CanUndo, ElementName=txtDocument}" Value="True">
<Setter Property="IsEnabled" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Resources>
<Image Source="/Images/32/undo.png" />
</Button>
我还尝试了两个独立的数据触发器,一个用于启用true,另一个用于false,但仍然无效。我错过了什么基本的东西?也许这个属性可能不会引发绑定更改所需的事件?
由于
答案 0 :(得分:1)
将Button的command属性设置为ApplicationCommands.Undo命令,并将CommandTarget属性指定为TextBox。
该按钮将根据ApplicationCommands.Undo命令CanExecute状态设置IsEnabled属性。当CanExecute为false时,该按钮将被禁用,当CanExecute为true时,该按钮将被启用。
<StackPanel>
<TextBox x:Name="txtDocument">Test
</TextBox>
<Button Command="ApplicationCommands.Undo" CommandTarget="{Binding ElementName=txtDocument}" Content="Undo"/>
</StackPanel>