gpt4 book ai didi

c# - 选中复选框时更改 wpf 数据网格行背景颜色

转载 作者:行者123 更新时间:2023-12-03 10:27:45 24 4
gpt4 key购买 nike

当检查给定行的复选框时,我正在尝试更改数据网格行的颜色,并且当未选中时,它应将值重置为上一个。

我正在使用 MVVM 来实现上述功能。

我的 XAML 代码:-

 <Window.Resources>
<Style x:Key="RowStyle" TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<DataTrigger Binding="{Binding DataContext.IsChecked, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="Background" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>

</Window.Resources>

<Grid>
<DataGrid Name="lbUsers" ItemsSource="{Binding Data}" CanUserAddRows="False" Grid.Column="1" Grid.Row="1" SelectedIndex="{Binding SelectionIndexChange, Mode=TwoWay}" AutoGenerateColumns="False">

<DataGrid.Columns>

<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Width="45" Height="20" Command="{Binding ElementName=lbUsers,Path=DataContext.IsChecked}" ></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>

</DataGrid>
</Grid>

下面给出的是 View 模型代码:
        public ViewModel ()
{
Data = new ObservableCollection<CommonData>
{

};

}



private ObservableCollection<CommonData> _data;
public ObservableCollection<CommonData> Data
{
get
{
if (_data == null)
{
_data = new ObservableCollection<CommonData>()
{

};

}

return _data;
}
set
{
if (value != this._data)
{
this._data = value;

NotifyPropertyChanged("Data");
}
}
}



private bool _isChecked;
public bool IsChecked
{
get { return _isChecked; }
set { this._isChecked = value; NotifyPropertyChanged("IsChecked"); }
}

请让我知道我做错了什么才能使给定的功能正常工作。

在此先感谢,如果缺少信息,请告诉我。

最佳答案

几件事:

您已分配 x:Key风格,但不在 DataGrid 上使用.删除键使其成为所有 DataGridRow 的默认样式,或将其添加到网格中:

RowStyle="{StaticResource RowStyle}"

DataTrigger绑定(bind),您还需要添加
ElementName=lbUsers

此外,您的 Checkbox没有正确绑定(bind)——这不是通过 Command 来完成的。 .你需要改变
Command={Binding...


IsChecked={Binding...

关于c# - 选中复选框时更改 wpf 数据网格行背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31540694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com