我有一个网格控件,其中有些列是可编辑的,有些列是不可编辑的。
我希望有更精细的控制,以便根据MyData
的一些其他字段,相应的单元格将被启用或不被启用。
<dxg:GridControl ItemsSource="{Binding MyData}" AutoPopulateColumns="True">
<dxg:GridControl.Columns>
<dxg:GridColumn Header="Name" ReadOnly="True"/>
<dxg:GridColumn Header="ID 1" ReadOnly="False"/>
<dxg:GridColumn Header="ID 2" ReadOnly="False"/>
<dxg:GridColumn Header="ID 3" ReadOnly="False"/>
</dxg:GridControl.Columns>
</dxg:GridControl>
在DevExpress支持网站上找不到任何内容。你能知道吗?
谢谢!
您可以通过处理ShowingEditor事件来完成此任务。如果不应该编辑单元格,可以将e.Cancel
设置为True
:
void TableView_ShowingEditor(object sender, DevExpress.Xpf.Grid.ShowingEditorEventArgs e)
{
if(...)
{
e.Cancel = true;
}
}
您也可以通过XAML样式完成此任务:
<Style TargetType="dxg:CellContentPresenter" BasedOn="{StaticResource {dxgt:GridRowThemeKey ResourceKey=CellStyle}}">
<Setter Property="IsEnabled" Value="{Binding Path=RowData.Row.SomePropertyRelatedToEnabledState}"/>
</Style>