Подтвердить что ты не робот

Обходной путь для привязки списка выражений к группе связывания пустой

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

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

В 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?

4b9b3361

Ответ 1

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

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

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

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

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