我有一个网格控件,其中一些列是可编辑的,有些则不是。
我希望有更好的控制权,以便取决于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支持网站上找到任何内容。你能有任何想法吗?
谢谢!
答案 0 :(得分:1)
您可以通过处理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>