状況:
A、B、CustomDataGrid
など、アイテムがさまざまなカテゴリに属することができる場所があります。各カテゴリには独自のテンプレートがあります。アイテムのカテゴリは変更可能で、その場合は必要に応じてテンプレートも変更したいと考えています。背後にある ViewModel は同じです。インターフェイス要素を変更しただけです (たとえば、テンプレート AI には があり、テンプレート BI には があり、両方ともVM の同じプロパティに があります)。RowDetails
TextBlock
TextBox
Binding
私がこれまでに行ったこと:
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<Control x:Name="RowDetails" Focusable="False" />
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding TemplateID, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Value="0">
<Setter TargetName="RowDetails" Property="Template" Value="{StaticResource TemplateA}" />
</DataTrigger>
<DataTrigger Binding="{Binding TemplateID, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Value="1">
<Setter TargetName="RowDetails" Property="Template" Value="{StaticResource TemplateB}" />
</DataTrigger>
<DataTrigger Binding="{Binding TemplateID, UpdateSourceTrigger=PropertyChanged, Mode=OneWay}" Value="2">
<Setter TargetName="RowDetails" Property="Template" Value="{StaticResource TemplateCustom}" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
問題:
アイテムのカテゴリを変更すると、テンプレートが変更されていることがわかりますが、行全体が ValidationErrorTemplate (感嘆符付きの赤い境界線) を取得します。これは、テンプレートが空の場合でも発生します! テンプレートを変更するだけで、全体が爆発するように思えます。
私は何を間違っていますか?ありがとう!