我以传统的方式将WPF4 DataGrid绑定到ObervableCollection。我可以添加到集合中,并在我的网格中获得一个新行。一切都很好。但是,我如何才能知道何时添加了新行,并且可以对其执行某些操作呢?我希望将焦点设置到新行中的特定单元格,并使其可编辑。似乎没有类似"NewRowAddedAndYouCanDoSomethingWithIt“的事件。
编辑11:39 12月4日:感谢您的回复。我添加到ObervableCollection中,并获得用户可以编辑的新行,但我希望避免用户需要在新行中单击。
发布于 2013-12-03 17:59:59
您说您以常规方式将WPF4 DataGrid绑定到ObervableCollection,并且可以添加到集合中并在我的网格中获得新行。但您的问题是,我如何知道何时添加了行?
您可以知道何时添加了行...因为当您将项目添加到集合中时...框架将在DataGrid
中添加一行。
此外,如果您确实正确地使用了MVVM,那么您就不会关心UI行是什么时候实际添加的,因为当使用WPF和MVVM时,我们操作的是数据,而不是UI元素。在这种情况下,您可以将一些bool
属性绑定到IsFocused
属性,并从视图模型中设置它。
发布于 2013-12-03 18:40:20
除了答案和评论之外:
如果将新行添加到集合中
var myNewRow = new MyObject(){Name="its New"};
this.MyCollection.Add(myNewRow);//<-- this new row is added to you collection, and your datagrid will show the new row
myNewRow.Name = "Test1";//if you implment INotifyPropertyChanged in your MyObject, the new Value its displayed in the grid
在这种情况下,当新行被添加到网格中时,您永远不需要事件。但也许我遗漏了一些东西,所以如果你有其他要求,请告诉我。
https://stackoverflow.com/questions/20346593
复制相似问题