繁体   English   中英

如果DataGrid列是WPF中的制表位,则进行绑定

[英]Binding if a DataGrid column is a tab stop in WPF

我有一个DataGridTextColumn,有时需要是一个制表位,而不是一个制表位。

我有

<DataGridTextColumn x:Name="SomeColumn">
            <DataGridTextColumn.CellStyle>
                <Style TargetType="{x:Type DataGridCell}">
                    <Setter Property="KeyboardNavigation.IsTabStop" Value="False" />
                </Style>
            </DataGridTextColumn.CellStyle>
</DataGridTextColumn>

这样可以很好地防止将选项卡制表到该列。

我想做类似的事情

<Setter Property="KeyboardNavigation.IsTabStop" Value="{Binding IsSomeColumnTabStop}" />

IsSomeColumnTabStopDataGridDataContext的布尔值。 不幸的是...这不起作用!

我也尝试过

<Setter Property="KeyboardNavigation.IsTabStop" Value="{Binding DataContext.IsSomeColumnTabStop}" />

但是没有运气!

我最终以一种感觉很脏的方式在代码后面进行了此操作……如果有人可以指出我正确的方向,则绝对首选绑定!

在我的DataGrid Resources我定义了

<Style x:Key="TabStopColumn" TargetType="DataGridCell">
    <Setter Property="KeyboardNavigation.IsTabStop" Value="True"/>
</Style>

<Style x:Key="NoTabStopColumn" TargetType="DataGridCell">
    <Setter Property="KeyboardNavigation.IsTabStop" Value="False"/>
</Style>

然后,当我希望制表符停止时,我可以...

SomeColumn.CellStyle = (Style)MyDataGrid.Resources["TabStopColumn"];

而且没有制表符停止...

SomeColumn.CellStyle = (Style)MyDataGrid.Resources["NoTabStopColumn"];

暂无
暂无

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

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