В WPF, как очистить DataBinding в DataGrid? - PullRequest
2 голосов
/ 11 января 2011

Я использую WPFToolKit DataGrid в моем приложении. Я привязал DataGrid к XMlDocument. Сетка отображает данные из XML. Я должен удалить все привязки в DataGrid и сбросить его во время какого-либо события.

Теперь мой вопрос: как удалить привязку данных между DataGrid и XMLDocument.

Я пробовал что-то вроде этого:

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

Что я делаю не так?

Ответы [ 4 ]

6 голосов
/ 11 января 2011

Чтобы отменить привязку в WPF, просто установите свойство, которое ранее было привязано к некоторому другому значению. В случае DataGrid его данные обычно привязываются к свойству ItemsSource, поэтому установка в значение null удалит предыдущую привязку. Но если у вас есть какие-либо другие свойства в DataGrid, которые связаны, вам придется также установить для них «несвязанные» значения. Какие из них будут зависеть от вашей ситуации. Но в вашем примере код будет:

dg.ItemsSource = null;
2 голосов
/ 20 января 2011

Следующая строка решила мою проблему ::

  BindingOperations.ClearAllBindings(dg);
0 голосов
/ 26 ноября 2016

Выше не работает для меня.Что работает для меня, если привязка:

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

Если не привязка:

dataGrid.Columns.Clear();
dataGrid.Items.Clear();
dataGrid.Items.Refresh();
0 голосов
/ 11 января 2011

Попробуйте изменить dataGrid.DataContext на ноль или пустую строку.

...