Страницы

Поиск по вопросам

понедельник, 30 марта 2020 г.

Наследование свойства IsEnabled в TabControl

#c_sharp #wpf


Подскажите как решить следующую проблему. Есть TabControl с несколькими TabItem.
Каждый TabItem в начальный момент недоступен (IsEnabled = false), рядом с TabControl
присутствуют CheckBox-ы, после нажатия на которые активируется соответствующие TabItem.
Как активировать и деактивировать это понятно - присваиваю каждому TabItem уникальное
имя и у CheckBox прописываю реакцию на check/uncheck. Начал заполнять TabItem-ы элементами
типа TextBox и др. - после компиляции выяснилось, что несмотря на то что они помещались
в Grid принадлежащий неактивному TabItem, но сами по неизвестной причине активны и
не унаследовали IsEnabled=false. Как можно просто решить эту проблему? В принципе понятное
дело, каждому элементу можно прописать имя и в check/uncheck включать/выключать, но
может есть способ заставить унаследовать IsEnabled TabItem-а?
    


Ответы

Ответ 1



В дизайнере студии щелкните правой кнопкой мыши по TabControl и выберите Edit Template>Edit a Copy... и добавьте шаблон элемента к себе в проект. В шаблоне вы увидите такую структуру: Как видно, заголовки TabItem'ов и их контент лежат рядом и не вложены друг в друга, это объясняет почему свойства TabItem не наследуются его контентом. Это можно исправить прямо в шаблоне, добавьте такую привязку:

Комментариев нет:

Отправить комментарий