Я хочу создать пользовательский элемент управления, содержащий одно поле со списком и элемент управления содержимым.Выбор, сделанный в поле со списком, должен определить шаблон данных, который будет использовать элемент управления содержимым.Я прочитал эту статью , которая в значительной степени демонстрирует то, чего я пытаюсь достичь.
Поле со списком заполнено значениями enum ModelType
, которые могут быть Person
или Company
.Если пользователь выбирает Person
, элемент управления контентом должен использовать шаблон данных personTemplate
;и companyTemplate
для Company
.
Я застрял с кодом XAML для управления контентом.Вот что я создал, но не могу заставить его работать:
<UserControl.Resources>
...
<DataTemplate x:Key="personTemplate" ...>
<DataTemplate x:Key="companyTemplate" ...>
...
</UserControl.Resources>
...
<ContentControl x:Name="Account">
<ContentControl.ContentTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding AccountType}" Value="Person">
<!-- I doubt the Value property is set correctly. -->
<!-- It should be a value of an enum ModelType -->
<Setter
TargetName="Account"
Property="ContentTemplate"
Value="{StaticResource personTemplate}" />
<!-- The setter is unaware of the target name, i.e. content control -->
</DataTrigger>
<DataTrigger Binding="{Binding AccountType}" Value="Company">
<Setter
TargetName="Account"
Property="ContentTemplate"
Value="{StaticResource companyTemplate}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
Пожалуйста, помогите, спасибо.