繁体   English   中英

C#WPF Datagrid如何禁用特定列上的选择单元格

[英]C# WPF Datagrid how to disable selection cell on specific column

全新的SO和全新的WPF数据网格。

我一直在搜索有关Datagrid的所有打开的线程,但我找不到任何问题的答案。

我正在尝试将数据显示到数据网格中。 到现在为止还挺好。 我试图让用户在datagrid中选择单元格。 到现在为止还挺好。 我想在特定列上禁用选择单元格。

请参见链接中的图片。

如何禁用Torque列或Average列上的选择单元格,让用户只选择Mes1 Mes2 Mes3Mes1 Mes2 Mes3

datagrid的示例

如果要阻止选择某些列中的单元格,可以使用DataGridCell样式将这些单元格的IsHitTestVisible属性设置为true

<DataGrid x:Name="dataGrid1">
    <DataGrid.Resources>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Column.Header, RelativeSource={RelativeSource Self}}" Value="Torque">
                    <Setter Property="IsHitTestVisible" Value="False"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding Column.Header, RelativeSource={RelativeSource Self}}" Value="Average">
                    <Setter Property="IsHitTestVisible" Value="False"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.Resources>
</DataGrid>

我只是在玩代码。 但是,当我点击例如Column Mes 1中的单元格,然后使用键盘进行导航时,可以聚焦Torque和Average列的单元格:-(

我想你必须将IsEnabled属性设置为false然后:

<DataTrigger Binding="{Binding Column.Header, RelativeSource={RelativeSource Self}}" Value="Torque">
    <Setter Property="IsHitTestVisible" Value="False"/>
    <Setter Property="IsTabStop" Value="False"/>
    <Setter Property="IsEnabled" Value="False"/>
</DataTrigger>

可以使用CellTemplate ,在下面的示例中,其中一个列单元格将是一个图像:

<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False" >
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
        <DataGridTemplateColumn Header="Image" Width="SizeToCells" IsReadOnly="True">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Image Source="{Binding Image}" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM