【问题标题】:WPF DataGrid CanUserAddRows eventWPF DataGrid CanUserAddRows 事件
【发布时间】:2014-04-14 09:58:27
【问题描述】:

是否有我可以使用的事件或命令,以便我可以在添加之前调用添加到 ObservableCollection 的对象?

目前,一旦用户单击网格中的行,它就会将其添加到集合中,但是我需要在 C# 中专门分配我不想在网格中分配的属性。

public void event
{


// I want to do something before the CanUserAddRow event does this
collection.Add(<T>;

}

【问题讨论】:

  • 请描述更多。是否要添加到集合中而不显示在数据网格中?
  • 您好,不完全是,在通过 CanUserAddRow 事件将对象添加到集合之前,我有两个属性要分配给自己(通过 c#)。所以基本上我想用英语对对象说“等等,我想在你进入收藏之前改变你”

标签: c# wpf datagrid observablecollection


【解决方案1】:

你可以使用DataGrid.InitializingNewItem事件:

private void InitializingNewItem(object sender, InitializingNewItemEventArgs e)
{
    //use e.NewItem here
}

来自MSDN

您可以通过处理 InitializingNewItem 事件并以编程方式设置值来设置新项目的默认值

【讨论】:

  • 完美。谢谢(将在几分钟内接受答复)
【解决方案2】:

我不确定这是否适合你...

private void DataGrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
  YourObject obj = e.Row.Item as YourObject;
  if (obj != null)
  {
     //see obj properties
  }
}

解释:

在这里用户输入数据到网格后,它取为e.Row.Item,然后你可以对你的对象进行任何修改。

【讨论】:

  • 我做了类似的事情,但基于 InitalizingNewItem 事件,所以将其标记为有用 + 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-10
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 2015-05-31
相关资源
最近更新 更多