gpt4 book ai didi

c# - DataGrid CellTemplate TabNavigation

转载 作者:太空宇宙 更新时间:2023-11-03 13:35:58 24 4
gpt4 key购买 nike

我假设之前有人问过这个问题,但我找不到它,所以请告诉我它是否与其他措辞或其他内容一起找到了重复项。

问题出在包含多个 CellTemplate 的 SL4 DataGrid,包括 CheckboxButton 等。默认情况下,它只会在第一行的这些元素之间切换。如果我设置 TabNavigation="Cycle",它会在所有元素之间切换,但它不会移动到下一个元素,而只是在同一个 DataGrid 中重复切换。

如果我将它设置为 Once 然后它只会在第一行中切换....并且 SL4 似乎没有 Continue 移动选项一旦到达边缘,就会进入下一个对象。

我正在寻找一种简单的方法来获取 TabNavigation="Cycle" 的等价物,除非它到达 DataGrid 中最后一个可制表符的元素然后它移动到树中的下一个元素,而不是再次跳回到 DataGrid 中的第一个元素。我在这里缺少什么?

最佳答案

似乎没有在 Silverlight 中执行此操作的 native 方法,这里是数据网格控件中支持的击键列表:http://msdn.microsoft.com/en-us/library/cc838112(v=vs.95).aspx

我能够通过使用 KeyDown 事件并检查 Tab 然后手动设置编辑单元格来伪造它:

<Grid x:Name="LayoutRoot"  >
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Text="Some text" />
<sdk:DataGrid Grid.Row="1" ItemsSource="{Binding People}" AutoGenerateColumns="False" KeyDown="DataGrid_KeyDown">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding FirstName}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding LastName}" />
</DataTemplate>
</sdk:DataGridTemplateColumn.CellEditingTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<TextBox Grid.Row="2" Text="Some more text" />
</Grid>

private void DataGrid_KeyDown(object sender, KeyEventArgs e)
{
DataGrid dg = (DataGrid)sender;
ObservableCollection<Person> items = dg.ItemsSource as ObservableCollection<Person>;
if (e.Key == Key.Tab && dg.SelectedIndex < items.Count -1)
{
dg.SelectedIndex++;
dg.CurrentColumn = dg.Columns[0];
dg.BeginEdit();
var cell = dg.CurrentColumn.GetCellContent(dg.SelectedItem);
}
}

关于c# - DataGrid CellTemplate TabNavigation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18702916/

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