WPF:如何在数据网格中始终有一个新行可用?

我目前正在使用带有 ViewModel 的 WPF/Xaml 数据网格,但在底部保留一个新的空行时遇到问题。我可以使用 Tab 键或输入我的方式,数据网格会创建一个新行,但用户希望始终单击新行。是否有捷径可寻?我尝试了几种方法,但都失败了。

如果有帮助,我有 CanUserAddRows = true 和 AutoGenerateColums = false 。


缥缈止盈
浏览 131回答 2
2回答

交互式爱情

您可以设置to的CanUserAddRows属性并自己处理“新”空白行的添加。每当您想要一个新行时,您应该向源集合添加一个没有设置任何属性的“空白”对象。DataGridfalseObservableCollection<T>最难弄清楚的部分可能是何时添加行。例如,您可以在用户设置源集合中最后一项的属性时执行此操作。如果类型T实现了INotifyPropertyChanged接口,您可以订阅PropertyChanged添加到源集合的每个项目的事件,并检查是否在事件处理程序中添加新项目,例如:private void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e){&nbsp; &nbsp; var dirtyItem = sender as T;&nbsp; &nbsp; if (dirtyItem != null && sourceCollection.LastOrDefault() == dirtyItem)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; T newRow = new T();&nbsp; &nbsp; &nbsp; &nbsp; newRow.PropertyChanged += OnItemPropertyChanged;&nbsp; &nbsp; &nbsp; &nbsp; sourceCollection.Add(t);&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP