如何让用户在按下WPF数据网格中的键后跳转到下一个拟合项目?



这是我使用的WPF-Datagrid:

<DataGrid Grid.Row="1" x:Name="products" CanUserAddRows="true" MouseDoubleClick="products_MouseDoubleClick" InitializingNewItem="products_InitializingNewItem" IsReadOnly="True"/>

product - dataset有一个名为"昵称"的属性。并且是按照这个性质排序的。当用户按下一个字母(例如" ")我希望我的数据网格选择下一行的昵称以" "

简而言之:我希望我的dataGrid显示的标准行为像大多数数据网格在Windows(例如资源管理器)。

这个代码:

private void products_KeyUp(object sender, KeyEventArgs e)
{
foreach (ProductDatasource item in products.Items)
{
if (item.Nickname.StartsWith(e.Key.ToString()))
{
Debug.Print("Found it, but how to set the selection?");
}
} 
}

将查找以该字母开头的第一个Item。但是我怎么选择这个项目呢?

并且几乎每个窗口中的网格都显示相同的行为(即使在更复杂的方式中,例如从当前位置开始搜索;如果你连续按两个键,比如"mi"它搜索下一个以";mi"开头的项。我想知道数据网格是否有内置的行为,我可以用它来做到这一点?

设置DataGridSelectedItem属性:

private void products_KeyUp(object sender, KeyEventArgs e)
{
foreach (ProductDatasource item in products.Items)
{
if (item.Nickname.StartsWith(e.Key.ToString()))
{
products.SelectedItem = item;
}
}
}

相关内容

  • 没有找到相关文章

最新更新