为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
缥缈止盈 2021-08-07 17:12:55
我目前正在使用带有 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);

    }

}


查看完整回答
反对 回复 2021-08-07
  • 2 回答
  • 0 关注
  • 130 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信