У меня есть пользовательский элемент управления, который реализует табличку данных в xaml:
<DataTemplate x:Key="Templat">
<StackPanel>
<TextBlock Text="Sample Text" />
<TextBlock Text="{Binding Surname}" />
</StackPanel>
</DataTemplate>
и пользовательский контроль:
<local:MyControl x:Name="MyControl1"
ItemTemplate="{StaticResource Templat}" Margin="0,0,-24,8"/>
generic.xaml (в моей библиотеке пользовательских элементов управления) имеет:
<ControlTemplate TargetType="local:MyControl">
<Canvas Name="LayoutRoot" Height="{TemplateBinding Height}"
Width="{TemplateBinding Width}"
Background="{TemplateBinding Background}"
CacheMode="BitmapCache">
<Canvas Name="ItemsHost" Margin="10,185,0,0" Height="615"
Width="{TemplateBinding Width}" CacheMode="BitmapCache">
<local:CustomItem x:Name="Item1"
ContentTemplate="{TemplateBinding ItemTemplate}" />
<local:CustomItem x:Name="Item2"
ContentTemplate="{TemplateBinding ItemTemplate}" />
</Canvas>
</Canvas>
</ControlTemplate>
Что я делаю не так?
Я создал пользовательский элемент управления, в котором есть несколько пользовательских элементов управления содержимым. Я хочу, чтобы у них всех был один и тот же шаблон контента, поэтому я привязал их шаблон контента к определенной шаблоне элемента в родительском элементе управления.
Моя проблема заключается в том, что элементы управления будут отображать текстовый блок с текстом «Образец текста», но не тот, который имеет значение в привязке. Я пытался указать DataContext в codebehind (например, DataContext = new Person() { Surname="Johnson" }
или через xaml. Ни один из них не сработал.
DataContext (класс Person) выглядит так, как будто он был передан правильно, но переданный DataTemplate пропускает выражение '{Binding Surname}'
. У вас есть идеи, что может быть не так?