好的,这是我的情景。
我有一个带有ListView的UserControl,例如,一个TextBox绑定到ListView SelectedItem。
这很好用。
<ListView
x:Name="listviewUser"
IsSynchronizedWithCurrentItem="True">
<ListView.View>
<GridView>
<GridViewColumn Header="User Name"
DisplayMemberBinding="{Binding Path=UserName}" />
</ListView.View>
</ListView>
<TextBox >
<TextBox.Text>
<Binding ElementName="listviewUser"
Path="SelectedItem.UserName"
ValidatesOnDataErrors="True"
Mode="TwoWay"
UpdateSourceTrigger="PropertyChanged">
</Binding>
</TextBox.Text>
但我想更改文本框文本值更改时所选行的背景颜色。
如果这个问题已经解决了(我不是很擅长英语),我希望我能够简明扼要地赦免。
非常感谢
答案 0 :(得分:2)
您可以选择几种解决方案。
如果要更改一小组颜色,请在XAML上使用DataTrigger。 (请注意,以下代码未经过测试)
<ListViewItem>
<ListViewItem.Style>
<Style TargetType="{x:Type ListViewItem}">
<Setter Property="Background" Value="Black" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=textBox, Path=Text}" Value="passed">
<Setter Property="Background" Value="Yellow" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=textBox, Path=Text}" Value="wrong">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListViewItem.Style>
</ListViewItem>
使用DataTemplateSelector进行更复杂的颜色选择。 一个很好的参考是:http://www.switchonthecode.com/tutorials/wpf-tutorial-how-to-use-a-datatemplateselector
在ItemTemplate中使用事件处理程序。建议不要这样做,因为你需要在代码隐藏处写代码。