使用MVVM基于WPF中的条件更新Datagrid特定行的颜色

3lxsmp7m  于 2023-06-07  发布在  其他
关注(0)|答案(1)|浏览(217)

我正在使用mvvm模式构建一个wpf应用程序。
我需要帮助,在改变颜色的特定行的数据网格。
DataGrid ItemsSource绑定到ViewModel中Datatable类型的属性。

<DataGrid ItemsSource="{Binding Data}"/>

我也有一个按钮的UI与命令绑定

<Button Content="Run" Command="{Binding RunCommand}"/>

这是我的ViewModel中的RunCommand

RunCommand = new DelegateCommand(Run, CanRun);

Run方法处理执行。
在这个函数中,我迭代数据的DataRows,并根据条件设置数据网格中每行的颜色。

foreach (DataRow row in Data.Rows){
    //Dummy if
   if(row["salary"]>=Somthing){
SetTheRowColor(row,green);
}

else{
SetTheRowColor(row,red);

}
   
 }

提前感谢任何帮助。

iyr7buue

iyr7buue1#

在代码中设置DataTable的特定列的值,并使用DataTrigger更改XAML标记中的行的颜色,例如:

<DataGrid ...>
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <Style.Triggers>
                <DataTrigger Binding="{Binding YourColumn}" Value="somevalue">
                    <Setter Property="Background" Value="Red" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.CellStyle>
</DataGrid>

代码:

foreach (DataRow row in Data.Rows) {
    if (row["name"]==Somthing){
        row["YourColumn"] = "somevalue";
    }
}

相关问题