我正在使用DataGrid在我的WPF应用程序中显示用户权限.
DataGrid的第一行将始终包含为其显示权限的项目的所有者.
在创建项目时设置此所有者,并且无法直接从DataGrid更改.
我的问题是.
如何创建第一行ReadOnly,并且可能给它一个特定的样式,以便可以更改背景?
你需要一个触发器,唯一的问题是在wpf datagrid上获取行索引是非常糟糕的,所以我倾向于做这样的事情:
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsOwner}" Value="true">
<Setter Property="IsEnabled" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
Run Code Online (Sandbox Code Playgroud)
我所知道的对象的属性值对于该特定行是唯一的.因此,如果有一个唯一的ID或所有者总是拥有的东西,你可以绑定到它.
setter属性为'IsEnabled',因为datagridrow不包含readonly的属性,但这将阻止用户修改该行.