【问题标题】:In WPF, how to clear DataBinding in a DataGrid?在 WPF 中,如何清除 DataGrid 中的 DataBinding?
【发布时间】:2011-06-06 23:37:14
【问题描述】:

我在我的应用程序中使用 WPFToolKit DataGrid。我已将 DataGrid 绑定到 XMlDocument。 网格显示来自 XML 的数据。我必须删除 DataGrid 中的所有绑定并在某些事件期间将其重置。

现在我的问题是如何删除 DataGrid 和 XMLDocument 之间的 DataBinding。

我试过这样的东西::

dg.SetValue(DataGrid.BindingGroupProperty, null); //doesn't work

我做错了什么?

【问题讨论】:

    标签: wpf data-binding datagrid


    【解决方案1】:

    要撤消 WPF 中的绑定,只需将之前绑定的属性设置为其他值。对于DataGrid,其数据通常绑定到ItemsSource 属性,因此将其设置为null 将删除其先前的绑定。但是,如果您在DataGrid 中有任何其他已绑定的属性,您还必须将它们设置为“未绑定”值。哪些将取决于您的情况。但在您的示例中,代码将是:

    dg.ItemsSource = null;
    

    【讨论】:

    • 我会把它放在我的视图模型中吗?如果用户按下保存或取消,我有应该清除数据网格的功能。
    【解决方案2】:

    尝试将 dataGrid.DataContext 更改为 null 或空字符串。

    【讨论】:

      【解决方案3】:

      以下行解决了我的问题::

        BindingOperations.ClearAllBindings(dg);
      

      【讨论】:

        【解决方案4】:

        以上对我不起作用。如果绑定对我有用:

        dataGrid.ItemsSource = null;
        dataGrid.Columns.Clear();
        dataGrid.Items.Clear();
        dataGrid.Items.Refresh();
        

        如果不绑定:

        dataGrid.Columns.Clear();
        dataGrid.Items.Clear();
        dataGrid.Items.Refresh();
        

        【讨论】:

          猜你喜欢
          • 2014-11-05
          • 1970-01-01
          • 2012-11-04
          • 1970-01-01
          • 1970-01-01
          • 2018-08-04
          • 2011-07-09
          • 1970-01-01
          • 2011-04-22
          相关资源
          最近更新 更多