Silverlight: индивидуальная видимость шаблона RowDetailsTemplate для каждой строки данных - PullRequest
1 голос
/ 16 августа 2010

Я пытаюсь отобразить шаблон RowDetailsTemplate Silverlight DataGrid в зависимости от свойства bool, привязанного к свойству CheckBox элемента управления IsChecked. Внутри моего RowDetailsTemplate есть один пользовательский элемент UserControl, содержащий дополнительные элементы управления.

Поскольку DataGrid допускает только глобальную настройку (RowDetailsVisibilityMode), требуется некоторый код позади. Я реализовал решение, основанное на Rorys Reply (и с использованием поведенческой техники), которое на самом деле работает.

К сожалению, DataGrid не запоминает индивидуально отображаемые или скрытые строки при сортировке. Флажок остается выбранным, но строка разрушается. Кроме того, кажется, что не существует такого события, как «OnAfterSort» или что-то подобное, где я мог бы «обновить» параметры видимости в цикле.

Другая идея заключалась в том, чтобы связать видимость моих пользовательских деталей- UserControl со значением привязки CheckBox. Это на самом деле работает (когда для RowDetailsVisibilityMode установлено значение «Видимый»), но я не могу избавиться от этого странного поведения: когда флажок установлен, шаблон сведений расширяется и появляется пользовательский элемент управления. Ницца. Когда CheckBox снова снят, UserControl исчезает (видимость установлена ​​на Collapsed), но строка не разрушается и остается пустое пространство (как было бы установлено на Hidden, а не Collapsed).

У вас есть идеи?

Надеюсь, все в порядке. Я не публиковал никаких примеров кода, реализация довольно проста, и я считаю, что проблема на самом деле не в кодовой ошибке, которую я допустил. Вы можете быстро настроить простую DataGrid, как в этот идеальный пример MSDN . Начиная с этого момента, легко протестировать оба описанных поведения!

Заранее большое спасибо,
- Томас

...