想知道如果某个对象值大于另一个对象值,如何突出显示gridview行? (考虑将gridview绑定到observablecollection)
感谢。
答案 0 :(得分:4)
在可观察集合中的项目类上放置一个属性,该属性将根据您需要的比较设置为true / false。然后你应该能够在DataGrid的ItemContainerStyle上为Style的DataTrigger绑定到这个属性。
试试这个......
<DataGrid ItemsSource="{Binding YourObservableCollection}" >
<DataGrid.ItemContainerStyle>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding YourShouldHighlightProperty}" Value="True">
<Setter Property="Control.Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.ItemContainerStyle>
</DataGrid>
答案 1 :(得分:2)
您需要实现转换器来执行&gt;比较,但这显示了一个亮点
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsParent}" Value="True">
<Setter Property="Background" Value="Gainsboro" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
答案 2 :(得分:0)
使用以下代码。我很喜欢。
private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
try
{
foreach (loadtodatagrid item in gridview.ItemsSource)
{
var row = gridview.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow;
if (item.item1== item.item2)
{
row.Background = new SolidColorBrush(Colors.Yellow);
}
else
{
// row.Background = new SolidColorBrush(Colors.Green);
}
}
}
catch(Exception ep)
{
//do nothing....
}
LoadingFow =“DataGrid_LoadingRow”到WPF中的datagrid