簡體   English   中英

從WPF DataGrid中的特定列中刪除焦點

[英]Remove Focus from Particular Columns in WPF DataGrid

我有一個WPF DataGrid。

當用戶按下Tab鍵時,我不想集中在第一列和第三列上,因此當我到達一行時,我應該在第二列中,而當我再次按下Tab鍵並到達3列時,它應該移至第四列。

我如何在WPF DataGrid中做到這一點

TabStopIndex值是什么,當按下Tab鍵時,該值指示接下來應在哪個字段上獲得焦點。 另外,可以通過KeyboardNavigation設置控件的TabStop來完全禁用它。 IsTabStop附加屬性。

XAML:

<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
        <DataGrid.Resources>
            <Style x:Key="NoTabStopStyle" TargetType="{x:Type DataGridCell}">
                <Setter Property="KeyboardNavigation.IsTabStop" Value="False"/>
            </Style>
        </DataGrid.Resources>
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=FirstColumn}" CellStyle="{StaticResource NoTabStopStyle}"/>
            <DataGridTextColumn Binding="{Binding Path=SecondColumn}"/>
            <DataGridTextColumn Binding="{Binding Path=ThirdColumn}" CellStyle="{StaticResource NoTabStopStyle}"/>
        </DataGrid.Columns>
    </DataGrid>

您可以禁用這些列:

<Window.Resources>
    <Style x:Key="NotSelectableColumStyle" TargetType="{x:Type DataGridCell}">
        <Setter Property="IsEnabled" Value="False"/>
    </Style>
</Window.Resources>

<Grid Name="LayoutRoot">
     <DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False">
        <DataGrid.Columns>
            <DataGridTextColumn   Binding="{Binding Path=Age}" />
            <!--<Disable this column>-->    
            <DataGridTextColumn   CellStyle="{StaticResource NotSelectableColumStyle}" Binding="{Binding Path=Name}" />
            <DataGridTextColumn  Binding="{Binding Path=Address}" />
        </DataGrid.Columns>
    </DataGrid>
 </Grid>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM