我有一个非常基本的Datagrid XAML绑定到CollectionViewSource。
<DataGrid ItemsSource="{Binding Source={StaticResource EditingItemsCollectionViewSource}}"/>
集合视图源绑定到具有3个数值的可观察的非常基本项集合。 C#显然。
当我在最后一行的最后一个单元格中时,我希望能够通过按键盘上的Tab键在此数据网格的底部添加一个新行(添加一个新项目)。
这可能吗?
答案 0 :(得分:0)
一种可能的解决方案是以编程方式设置属性:
dataGrid.AllowUserToAddRows = true;
为了实现“添加行”功能(前提是它最初设置为false,因此新行是不可见的)。根据您的任务定义,可以通过按Tab键触发(可以添加任何其他条件):
private void dataGrid_PreviewKeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.Key == Key.Tab)
{
e.Handled = true;
// your code
}
}
catch{}
}
您可能还想通过添加事件处理过程为新创建的行项设置一些默认值:
dataGrid.InitializingNewItem += new InitializingNewItemEventHandler(dataGrid_InitNewItem);
private void dataGrid_InitNewItem(object sender, InitializingNewItemEventArgs e)
{
// your code
}
可以在此处找到向WPF DataGrid
添加行的其他示例实现:Wpf DataGrid Add new row
此外,与您的说明相关,您可以将该项目添加到基础ObservableCollection
,因此它会自动显示在DataGrid
。
希望这会有所帮助。最好的问候,