Хорошо, поэтому у меня есть шаблон данных с именем GeneralVocabItemTemplateInput.В нем находится расширитель управления.
Шаблон данных связан с моделью представления, поэтому можно связывать различные элементы.Фактически я могу связать текст заголовка для расширителя следующим образом:
<DataTemplate x:Key="GeneralVocabItemTemplateInput">
<Grid Margin="2">
<Expander Header="{Binding ID}">
И это прекрасно работает.Текст заголовка отображает значение идентификатора.Дело в том, что контекст данных экспандера - это модель представления, которую я хочу.
Пока все хорошо.Теперь вместо идентификатора в виде текста я хотел использовать шаблон, чтобы иметь больше возможностей для настройки.Я создал шаблон данных, который я мог назначить свойству HeaderTemplate в экспандере.Поэтому я создал один в своем словаре ресурсов, который выглядит следующим образом:
<DataTemplate x:Key="TemplateTest">
<StackPanel>
<Border BorderThickness="1" BorderBrush="Black">
<TextBlock Margin="2" Text="{Binding ID}"/>
</Border>
</StackPanel>
</DataTemplate>
Очень просто, заданная граница, а также то же значение границы, что и раньше.
Я использую это в расширителе следующим образом:
<DataTemplate x:Key="GeneralVocabItemTemplateInput">
<Grid Margin="2">
<Expander HeaderTemplate="{StaticResource TemplateTest}">
Здесь я получаю проблему.Появляется черная рамка, но внутри ничего нет.
Очевидно, что шаблон работает и его можно найти, так как появляется граница, но нет привязки.Я поэкспериментировал с этим некоторое время и не нашел решения.
Одна вещь, которую я попытался сделать, это изменить место хранения TemplateTest (шаблон данных).Он находился в отдельном файле словаря ресурсов, поэтому я переместил его в тот же файл, что и мой исходный шаблон (GeneralVocabItemTemplateInput), чтобы увидеть, если это что-то изменило.Без разницы.
Я надеюсь, что кто-то может пролить свет на это.