DevExpress GridControl单元启用/禁用

时间:2014-10-01 03:58:37

标签: grid devexpress cell

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

我希望有更好的控制权,以便取决于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支持网站上找到任何内容。你能有任何想法吗?

谢谢!

1 个答案:

答案 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>