gpt4 book ai didi

c# - 动态加载控件上的 Tab 键顺序

转载 作者:太空狗 更新时间:2023-10-29 21:39:27 26 4
gpt4 key购买 nike

我有这样一种情况,我试图为动态加载的控件设置 Tab 键顺序 (tabindex)。主 XAML 如下所示:

<ItemsControl DockPanel.Dock="Top" ItemsSource="{Binding ItemsDataSource}" Name="overlayItems" ItemTemplate="{StaticResource DetailsTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>

为了示例目的,假设 DetailsTemplate 是这样简单的东西:

<DataTemplate x:Key="DetailsTemplate">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="150" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="22" />
<RowDefinition Height="22" />
<RowDefinition Height="22" />
</Grid.RowDefinitions>

<Label Grid.Column="0" Grid.Row="0" Padding="0">Field 1</Label>
<TextBox Grid.Column="1" Grid.Row="0" Name="field1TextBox" TabIndex="0" Text="{Binding Field1Value}"/>

<Label Grid.Column="0" Grid.Row="1" Padding="0">Field 2</Label>
<TextBox Grid.Column="1" Grid.Row="1" Name="field2TextBox" TabIndex="1" Text="{Binding Field2Value}"/>

<Label Grid.Column="0" Grid.Row="2" Padding="0">Field 3</Label>
<TextBox Grid.Column="1" Grid.Row="2" Name="field3TextBox" TabIndex="2" Text="{Binding Field3Value}"/>
</Grid>
</DataTemplate>

除了生成的 Tab 键顺序外,此 XAML 工作正常。

假设 ItemsDataSource 是一个类的集合并且包含该类的 3 个实例,则创建三组 DetailsTemplate 数据模板。然而,Tab 键顺序没有改变,每个 field1TextBox 都保持在 TabIndex 0。这意味着,不是从 field1TextBox 的第一个实例到 field2TextBox,到 field3TextBox,选项卡从 field1TextBox 的第一个实例到 field1TextBox 的第二个实例,然后到 field1TextBox 的第三个实例,然后到 field2TextBox 的第一个实例,依此类推。我的问题是,如果数据模板的第二个实例将其文本框选项卡索引分别更新为 3、4 和 5,我该如何更正选项卡顺序?

最佳答案

您会在 KeyboardNavigation.TabNavigation Attached Property 中找到答案来自 MSDN 的页面。此属性获取或设置设置此属性的元素的子元素的逻辑选项卡导航行为

KeyboardNavigationMode Enumeration 中有几个可能的值used 以不同的方式影响 Tab 键顺序,但你在 Local 值之后,它的效果是 Tab 索引仅在该容器内的本地子树上被考虑并且...... [到达边缘时导航离开包含元素]

<Grid KeyboardNavigation.TabNavigation="Local">
...
</Grid>

关于c# - 动态加载控件上的 Tab 键顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21412458/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com