我目前正在使用带有 ViewModel 的 WPF/Xaml 数据网格,但在底部保留一个新的空行时遇到问题。我可以使用 Tab 键或输入我的方式,数据网格会创建一个新行,但用户希望始终单击新行。是否有捷径可寻?我尝试了几种方法,但都失败了。如果有帮助,我有 CanUserAddRows = true 和 AutoGenerateColums = false 。
2 回答
交互式爱情
TA贡献1712条经验 获得超3个赞
您可以设置to的CanUserAddRows属性并自己处理“新”空白行的添加。每当您想要一个新行时,您应该向源集合添加一个没有设置任何属性的“空白”对象。DataGridfalseObservableCollection<T>
最难弄清楚的部分可能是何时添加行。例如,您可以在用户设置源集合中最后一项的属性时执行此操作。
如果类型T实现了INotifyPropertyChanged接口,您可以订阅PropertyChanged添加到源集合的每个项目的事件,并检查是否在事件处理程序中添加新项目,例如:
private void OnItemPropertyChanged(object sender, PropertyChangedEventArgs e)
{
var dirtyItem = sender as T;
if (dirtyItem != null && sourceCollection.LastOrDefault() == dirtyItem)
{
T newRow = new T();
newRow.PropertyChanged += OnItemPropertyChanged;
sourceCollection.Add(t);
}
}
- 2 回答
- 0 关注
- 130 浏览
添加回答
举报
0/150
提交
取消