我在 dataGrid 中使用 ListViewCollection 类。底层集合是一个可观察的集合。
每当我调用集合中的 Move 方法(在 ViewModel 中)时,CurrentChanged 事件都不会触发。
但是,当 UI 在其上调用相同的方法时(我可以在调用堆栈中看到它),该事件会触发。
this.EmailTemplates = new ListCollectionView(templateVmList);
this.EmailTemplates.CurrentChanging += (o, e) => EmailTemplates_CurrentChanging(o, e);
this.EmailTemplates.CurrentChanged += (o, e) => { this.SelectedEmailTemplate = (EmailTemplateViewModel)this.EmailTemplates.CurrentItem; };
if (this.EmailTemplates.Count > 0)
{
if (!this.EmailTemplates.MoveCurrentToFirst())
throw new ArgumentException("Element not found in collection");
}
无论谁在更改集合,我应该在代码中做什么以确保事件触发。