У меня есть следующий xaml:
and two classes as possible data context - for two different windows.
class ToolbarContextOne
{
public Visibility SomeProperty {get;set;}
}
class ToolbarContextTwo:ToolbarContextOne
{
public bool IsEnabled {get;set;}
}
Я использую тулбар из примера в нескольких ситуациях. Для того, чтобы показывать различные данные в разных окнах, я использую разные дата контексты.
Когда мне не нужна вышеупомянутая секция, я просто ставлю SomeProperty в Visibility.Collapsed. Но всё равно получаю binding error для свойства IsEnabled. Очевидно, парсер пытается выполнить все binding expressions. Есть способ заставить его не выполнять эти выражения в скрытой секции xaml?
Ответ
Наверное, более чистый путь через DataTemplate
Положите где-нибудь в ресурсы (например, глобальные, или локально в окно, или в UserControl) такое:
Ну и в том месте, где у вас был ToolbarTray, просто
При этом ContentPresenter найдёт нужный DataTemplate и использует его.
Комментариев нет:
Отправить комментарий