Я пытаюсь изменить состояние IsEnabled кнопки на основе события TextBox.TextChanged или события ComboBox.SelectionChanged.Я пытался сделать это с событиями, но включенное состояние изменялось загружаемыми данными.Я заполняю сетку UIElement WPF текстовыми полями и комбинированными полями.Сетка заполняется через ItemSource of List.
Мне нужен редактор, содержащий сетку для заполнения данными и состояние включения кнопок «Применить», которое устанавливается на «ложь» до тех пор, пока пользователь не изменит данные текстового поля или поля со списком.В это время DataTrigger должен сработать и изменить btnApply.IsEnabled на true.Я не был уверен, что указывать в качестве значения событий, но «True» просто не был верным, а True и HasChanged не работали.
Я открыт для других подходов, кромеDataTrigger при условии, что IsEnabled имеет значение false по умолчанию, когда элемент управления представлен пользователю.
Вот что у меня есть:
<UserControl.Resources>
<Style x:Key="tbChanged" TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=TextBox.TextChanged}" Value="HasChanged">
<Setter Property="Button.IsEnabled" Value="True"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=ComboBox.SelectionChanged}" Value="HasChanged">
<Setter Property="Button.IsEnabled" Value="True"/>
</DataTrigger>
</Style.Triggers>
</Style>
</UserControl.Resources>
<Button x:Name="btnApply" Content="Apply" Height="22" Width="50" Margin="5,5,0,0" HorizontalAlignment="Left" VerticalAlignment="Top" IsEnabled="False" Click="btnApply_Click" Style="{StaticResource tbChanged}"/>