我有一个自动生成列的WPF 4.0 DataGrid。我只想允许用户编辑第一列。有没有简单的方法可以做到这一点?
我尝试添加一个DataGridCell样式,并根据ColumnName(第一列始终具有相同的名称)或ColumnIndex设置其编辑能力,但我无法找出正确的XAML,甚至不知道是否可能。
private void Grid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.Column.Header.ToString() == "COLUMNNAME")
{
// e.Cancel = true; // For not to include
// e.Column.IsReadOnly = true; // Makes the column as read only
}
}
我明白了....这是我使用的:
<DataGrid.Resources>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="IsEnabled" Value="False" />
<Style.Triggers>
<DataTrigger Value="PART_IsSelected" Binding="{Binding Path=Column.Header, RelativeSource={RelativeSource Self}}">
<Setter Property="IsEnabled" Value="True" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.Resources>
Column.DisplayIndex
代替Column.Header。