C# 按键时更新DataGrid样式
我有一个DataGrid,它根据行是否列为“要删除”来设置行背景的样式。 当加载到表中或滚动时,行的颜色会改变,但不会立即改变 我使用“ctrl+del”标记要删除的选定行。 如何在此按键上获取要更新的行 数据网格实现C# 按键时更新DataGrid样式,c#,wpf,.net-core,datagrid,C#,Wpf,.net Core,Datagrid,我有一个DataGrid,它根据行是否列为“要删除”来设置行背景的样式。 当加载到表中或滚动时,行的颜色会改变,但不会立即改变 我使用“ctrl+del”标记要删除的选定行。 如何在此按键上获取要更新的行 数据网格实现 <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Style.Trigger
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="WhiteSmoke" />
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="LightGray" />
</Trigger>
<DataTrigger Value="True">
<DataTrigger.Binding>
<Binding>
<Binding.Converter>
<local:IsDeletedConverter/>
</Binding.Converter>
</Binding>
</DataTrigger.Binding>
<DataTrigger.Setters>
<Setter Property="Background" Value="OrangeRed"/>
</DataTrigger.Setters>
</DataTrigger>
</Style.Triggers>
<Setter Property="Background">
<Setter.Value>
<Binding Path="">
<Binding.Converter>
<local:ValueToBrushConverter/>
</Binding.Converter>
</Binding>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
将
ExpandoObject
替换为实现INotifyPropertyChanged
接口的自定义类型的对象,并为在样式中绑定到的IsDeleted
属性引发PropertyChanged
事件,而不是绑定到对象本身。@mm8我无法为需要从读取的文件动态创建数据,以便在动态读取文件时创建该类型的实例?
public class IsDeletedConverter : IValueConverter
{
public object Convert(object values, Type targetType, object parameter, CultureInfo culture)
{
if (values is ExpandoObject eo)
{
if ((Application.Current.MainWindow as MainWindow).LoadedTable.ToDelete.Contains((int)ExpandoUtils.GetExpandoProperty(eo, "id")))
return true;
}
return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}