Я пытаюсь отобразить шаблон RowDetailsTemplate Silverlight DataGrid
в зависимости от свойства bool
, привязанного к свойству CheckBox
элемента управления IsChecked
. Внутри моего RowDetailsTemplate есть один пользовательский элемент UserControl
, содержащий дополнительные элементы управления.
Поскольку DataGrid
допускает только глобальную настройку (RowDetailsVisibilityMode
), требуется некоторый код позади. Я реализовал решение, основанное на Rorys Reply (и с использованием поведенческой техники), которое на самом деле работает.
К сожалению, DataGrid
не запоминает индивидуально отображаемые или скрытые строки при сортировке. Флажок остается выбранным, но строка разрушается. Кроме того, кажется, что не существует такого события, как «OnAfterSort» или что-то подобное, где я мог бы «обновить» параметры видимости в цикле.
Другая идея заключалась в том, чтобы связать видимость моих пользовательских деталей- UserControl
со значением привязки CheckBox. Это на самом деле работает (когда для RowDetailsVisibilityMode установлено значение «Видимый»), но я не могу избавиться от этого странного поведения: когда флажок установлен, шаблон сведений расширяется и появляется пользовательский элемент управления. Ницца. Когда CheckBox снова снят, UserControl исчезает (видимость установлена на Collapsed
), но строка не разрушается и остается пустое пространство (как было бы установлено на Hidden
, а не Collapsed
).
У вас есть идеи?
Надеюсь, все в порядке. Я не публиковал никаких примеров кода, реализация довольно проста, и я считаю, что проблема на самом деле не в кодовой ошибке, которую я допустил. Вы можете быстро настроить простую DataGrid, как в этот идеальный пример MSDN . Начиная с этого момента, легко протестировать оба описанных поведения!
Заранее большое спасибо,
- Томас