Проблемы с разрешением DataContext в WPF - PullRequest
0 голосов
/ 12 октября 2018

Я создал класс PagedView, который наследуется от ContentControl.
Далее я определил ControlTemplate для Foo внутри ResourceDictionary.

ControlTemplate начинается следующим образом:

<ControlTemplate TargetType="controls:PagedView">
    <Grid Background="White" DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type controls:PagedView}}}">

(я выбрал этот способ определения этого элемента управления, потому что мне нужно было поддерживать именованное содержимое, и пока это единственный способ, который работал)

Теперь я могу просто использовать PagedView где-то и настроить его содержимое для моих нужд, например:

<controls:PagedView>
    <TextBlock Text="FooBar" />
</controls:PagedView>

Затем я добавил еще один DependencyProperty "Header" к PagedView, чтобы добавитьдополнительный контент для какой-то части контроля.

В стиле PagedView я добавил следующую строку для поддержки этого дополнительного содержимого:

<ContentPresenter Content="{Binding Header}" />

Теперь я могу добавить дополнительные элементы управления, такие как:

<controls:PagedView.Header>
    <CheckBox Content="FooCheck" />
</controls:PagedView.Header>

Теперь я хотел связать свойство IsChecked с другим свойством зависимости, определенным в Page с использованием PagedView, но, к сожалению, кажется, что Binding не может быть правильно разрешено, поскольку свойство зависимости, к которому не привязаноменяются всякий раз, когда я переключаю IsChecked состояние CheckBox.

. Я не очень хорошо разбираюсь в правилах того, как WPF определяет правильные DataContext для каждого элемента в пользовательском интерфейсе, так что же я?здесь не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...