Привязка Видимое свойство DataGridColumn в WPF DataGrid

Я не могу связать свойство Visible столбца данных WPF с логическим значением.

Мое обязательное выражение:

{Binding Path=DataContext.IsThisColumnVisible, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},Converter={StaticResource vc}}

Я проверил, что конвертер работает (bool to enum видимости) и находится в области видимости.

Если я использую то же выражение для заголовка столбца, заголовок отображает "ложь", как и ожидалось.

Видимый является свойством зависимости, поэтому должен быть привязываемым.

Кто-нибудь видит, что я делаю не так? Или кто-то еще мог связать видимое свойство.

С Уважением,

Matt

4 ответа

Решение

Я решил это.

DataGridCOlumn не является элементом структуры, поэтому вызов FindAncestor не удался (DataGridColumn не является частью визуального дерева)

Нужно установить свойство source выражения привязки для staticresource, и оно работает нормально.

Трудно сказать по такому небольшому количеству вашего кода. Что находится в окне вывода Visual Studio (в разделе "Отладка")? Это часто даст вам ключ к решению проблемы.

Я искал то же самое и нашел отличный способ сделать это в статье о перенаправлении datacontext в столбцы.

Если вы можете связать из кода, вы можете использовать

BindingOperations.SetBinding(DatagridColumInstance,
                             DatagridColum.VisibilityProperty,
                             myNewBindDef);
Другие вопросы по тегам