C# 如何禁用某些DataGrid单元格

C# 如何禁用某些DataGrid单元格,c#,wpf,C#,Wpf,我正在使用DataGrid在WPF应用程序中显示一些数据 如何禁用单元格?有几种方法可以实现这一点,但您可以设置RowLoaded事件,在这种情况下,您应该获得单元格集合。在这里,您可以将其设置为只读,也可以将其禁用。我不能在WPF中100%确定这一点,但它在Silverlight中运行良好。在列级别,设置IsReadOnly属性 在单元格级别,需要DataGridTemplateColumn和DataTemplate上的TextBox <DataGrid.Columns>

我正在使用DataGrid在WPF应用程序中显示一些数据


如何禁用单元格?

有几种方法可以实现这一点,但您可以设置RowLoaded事件,在这种情况下,您应该获得单元格集合。在这里,您可以将其设置为只读,也可以将其禁用。我不能在WPF中100%确定这一点,但它在Silverlight中运行良好。

在列级别,设置IsReadOnly属性

在单元格级别,需要DataGridTemplateColumn和DataTemplate上的TextBox

<DataGrid.Columns>
    <!--Column level - all column its "read only"-->
    <DataGridTextColumn Binding="{Binding AAA}"  IsReadOnly="True" />

    <!--Cell level - Cell its "read only" Depending data bindings -->
    <DataGridTemplateColumn >
        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBox Text="{Binding BBB.CCC}" IsReadOnly="{Binding BBB.AllowEdit}" />
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>

</DataGrid.Columns>


我不明白你说BBB是什么意思。对不起,我只是个乞丐。这只是一个例子。如果您希望单元格可以根据行本身(源行-DataContext)中的信息进行编辑,那么我设想了一种情况,您可以创建一个名为BBB的属性行,它还包含一个字符串(CCC)和一个名为“AllowEdit”的布尔字段,用于确定单元格是否可以编辑。