DevExpress GridControl单元格启用/禁用



我有一个网格控件,其中有些列是可编辑的,有些列是不可编辑的。

我希望有更精细的控制,以便根据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>

最新更新