我正在学习WPF / MVVM,我有一个组合框,可根据所选的组合框值更新多个文本框。我想要做的是突出显示一些thext框,如果它们包含一定的值。文本框不会获得焦点并且是只读的。使用MVVM的最佳方法是什么?
修改 感谢您使用Trigger的想法。我实际上是尝试根据同一文本框的值设置文本框的边框颜色。根据下面提供的信息,这是我的文本框的样子,但是当文本框中显示“交易”一词时,边框不会改变。我是否错误地引用了某些内容?
<TextBox Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Width="170" Grid.Column="4" Grid.Row="2" Margin="4,2,0,0" IsEnabled="False" DataContext="{Binding SelectedTDetails}" Text="{Binding CType}" Background="WhiteSmoke" Padding="1,0,0,0" >
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Text" Value="Transaction">
<Setter Property="BorderBrush" Value="LightGreen" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
答案 0 :(得分:1)
这是使用TextBox中的触发器
的示例使用此示例时通过在TextBox中键入项目2或从ComboBox
中选择它来触发相同的操作<StackPanel>
<ComboBox x:Name="combo">
<ComboBoxItem>item 1</ComboBoxItem>
<ComboBoxItem>item 2</ComboBoxItem>
</ComboBox>
<TextBox Text="{Binding SelectedItem.Content,ElementName=combo}">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Text"
Value="item 2">
<Setter Property="Background"
Value="LightGreen" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</StackPanel>
在上面的示例中,TextBox绑定到ComboBox的选定项目(仅用于模拟应用程序的行为)
TextBox样式中的触发器查看Text属性是否包含第2项,它会更改TextBox的背景颜色以模拟突出显示
这只是关于触发器的基本概念,您可以利用您的创造力来实现所需的突出显示行为,可能涉及闪烁的颜色,动画大小等。