Связывание Видимое свойство DataGridColumn в WPF DataGrid
Я не могу привязать свойство Visible WPat datagridtextcolumn к логическому значению.
Мое обязательное выражение:
{Binding Path=DataContext.IsThisColumnVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},Converter={StaticResource vc}}
Я проверил, что конвертер работает (bool до перечисления видимости) и находится в области видимости.
Если я использую одно и то же выражение для заголовка столбца, заголовок отображает "false", как ожидалось.
Видимый - свойство зависимости, поэтому он должен быть привязанным.
Кто-нибудь видит, что я делаю неправильно? Или кому-то еще удалось связать видимое свойство.
Привет,
Matt
Ответы
Ответ 1
Я справился с этим.
DataGridCOlumn не является элементом структуры, поэтому вызов FindAncestor терпел неудачу (DataGridColumn не является частью визуального дерева)
Необходимо установить свойство source для привязки выражения к staticresource, и он отлично работает.
Ответ 2
Сложно сказать от такого маленького кода. Что находится в окне вывода Visual Studio (в разделе "Отладка" )? Это часто дает вам ключ к проблеме.
Ответ 3
Я искал то же самое и нашел отличный способ сделать это в статье о пересылке datacontext в столбцы.
Ответ 4
Если вы можете привязать код, вы можете использовать
BindingOperations.SetBinding(DatagridColumInstance,
DatagridColum.VisibilityProperty,
myNewBindDef);