我已经以传统方式将WPF4 DataGrid绑定到ObervableCollection。我可以添加到集合中并在我的网格中获得一个新行。都好。但是,我怎么知道新行何时添加,我可以用它做什么?我想将焦点设置为新行中的特定单元格并使其可编辑。 “NewRowAddedAndYouCanDoSomethingWithIt”似乎没有任何事件。
编辑11:39 12月4日: 谢谢大家的回应。尽管有关于该做什么或不做什么的讲座,我仍然对如何实现这一点感到困惑。我添加到ObervableCollection并获得一个用户可以编辑的新行,但我想避免用户需要单击新行。一旦在DataGrid中添加了新行,我希望光标在编辑模式下的特定单元格中。
答案 0 :(得分:0)
这似乎是一个奇怪的问题......你说你以传统方式将WPF4 DataGrid绑定到ObervableCollection,并且你可以添加到集合中并获得一个新行在我的网格。但你的问题是如何知道何时添加了行?
您可以知道添加行的时间...因为当您向集合中添加项目时...框架会向DataGrid
添加一行。
此外,如果您确实正确使用了MVVM,那么在实际添加UI行时您并不在意,因为在使用WPF和MVVM时,我们操纵数据,而不是UI元素。在这种情况下,您可以将一些bool
属性绑定到IsFocused
属性,然后从视图模型中设置它。
答案 1 :(得分:0)
除了答案和评论:
如果您向集合添加新行
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
在这种情况下,当新行添加到网格时,您永远不需要事件。但也许我想念一些东西,所以如果你有其他要求,请告诉我。