父窗体有DataGrid控件,DataGrid里面有很多行数据。另外还有一个定时器用来对父窗体Datagrid的数据源进行更新(从后台数据库读取)。现在选中一条数据,点击跳转按钮跳转到另一个窗体(我称之为子窗体),此时把定时器暂停不刷新。现在我在子窗体中成功获取倒了父窗体传过来的值,然后我改变了子窗体的里面的值并且对数据库进行了更新(数据库更新也成功了)。在关闭子窗口时候,我对DataGrid的数据源重新从数据库读取,并且恢复定时器。现在的问题是父窗体的数据源并没有更新,被选中的那一行还在。求问:如何使父窗体的数据进行更新!我用事件监听也用过了,不可以。
Model层我也实现了INotifyPropertyChanged接口,DataGrid数据源集合也是用ObservableCollection集合,用的是MVVM,父窗体和子窗体的ViewModel都是在一个类中。
下面是部分代码截图
数据绑定代码
子窗体关闭时代码
父窗体写个公有方法进行开启定时器及刷新,字窗体关闭的时候调用下。
没用过MVVM,主窗体中监听子窗体的关闭事件不能用么?
WinRemark.Closed += (s, e) => { // 数据操作 恢复计时器等 }
恢复定时器后,设个断点,看定时器事件是否执行了
绑定数据方法只是刷新了数据源,你关闭子窗体的时候重新定义一个数据源,手动绑定到datagrid上试试。