Обходной путь для списка выражений связывания при пустой группе связывания - PullRequest
16 голосов
/ 11 февраля 2011

В WPF 4 список выражений привязки в группе привязок, который передается методу проверки ValidationRule, пуст.

То же самое, является ли AutoGenerateColumns истинным или ложным, было ли DataGridBoundColumns явно добавлено в сетку данных.

В WPF 3.5 SP1 с использованием DataGrid из набора инструментов список выражений привязки заполняется исключительными выражениями привязки (1 для каждого столбца в сетке данных)

Я считаю это ошибкой и разместил ее на сайте Microsoft Connect: https://connect.microsoft.com/WPF/feedback/details/642815/bindingexpressions-on-bindinggroup-passed-to-validationrule-in-datagrid-rowvalidationrules-is-empty

Но есть ли у кого-нибудь обходной путь, чтобы я мог получить правильное выражение привязки из ValidationRule?

1 Ответ

1 голос
/ 31 мая 2011

Для поддержки «предлагаемых значений», которые не фиксируются для цели двусторонней привязки до тех пор, пока проверка не пройдет успешно, WPF 4.0 DataGrid был переработан для использования преимуществ новой BindingGroup.SharesProposedValues особенность WPF 4.0.Из-за этого изменения больше нет необходимости использовать двусторонние привязки в группе привязок шаблонов отображения.

Вы можете использовать BindingGroup.TryGetValue, чтобы вместо этого получить предложенные значения для других столбцовиспользования старого метода, который работал с DataGrid из WPF Toolkit .

Другими словами, новый DataGrid фактически исправляет нежелательную особенность старого DataGrid ив результате все работает немного по-другому (т. е. отсутствующие привязки являются заданными), но вы все равно можете делать то, что вам нужно.

Объяснение, сделанное собственными словами Microsoft, находится в этой ссылке Microsoft Connect:

А вот блог, который описывает BindingGroup.SharesProposedValues другим способом:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...