【问题标题】:How to undo all the wpf datagrid changes through a button click如何通过单击按钮撤消所有 wpf 数据网格更改
【发布时间】:2016-01-09 06:05:35
【问题描述】:

我已将 ObservableCollection 绑定到数据网格的 itemsource, 现在对于在数据网格上执行的每个操作,我将更改存储在撤消重做堆栈中,我们有两个用于撤消和重做的工具栏按钮,因此我们支持单击这些按钮时撤消重做,现在我们有一个要求,我们要提供一个新按钮,该按钮应该一键撤消所有网格更改,它应该清除撤消堆栈。 目前,我正在调用业务逻辑以获取原始数据并重新加载数据网格,因为我发送到网格的原始数据已被修改并且更改被接受。 我正在尝试查看是否可以使用撤消重做堆栈在初始加载时获取数据的原始状态,而无需在数据网格中进行多次刷新[用户不应该感到多次刷新]? 我可以在将数据加载到数据网格之前维护数据的副本,但想知道我是否可以通过 undo-redo 堆栈或 observablecollections 的任何函数来实现这一点?

【问题讨论】:

    标签: wpf wpfdatagrid


    【解决方案1】:
    ...
    private myDBDataContext dc = new myDBDataContext(); //context DB
    public MainWindow()
    {
        InitializeComponent();
    
    //binding the datagrid (WPF) with context db and table
        if (dc.DatabaseExists())
        {
            dataGrid.ItemsSource = dc.myTables;
         }
    }
    private void Refres_Click(object sender, RoutedEventArgs e)
    {
        //call the refresh with "OverwriteCurrentValues" (this is what you need)
        dc.Refresh(System.Data.Linq.RefreshMode.OverwriteCurrentValues, dc.myTables);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2016-04-04
      • 2020-09-28
      • 1970-01-01
      • 2020-12-30
      • 2018-11-27
      相关资源
      最近更新 更多