簡體   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