ビューに 2 つのリストがあり、同じ DataTemplate を共有したい。
最初のリストはこの DataTemplate を直接使用でき、2 番目のリストは特定の条件下で使用する必要があるため、最初のケースでは、このような XAML があり、機能します。
<ListBox ItemTemplate="{StaticResource TrackedAssetTemplate}">
2番目のケースでは、私はこのようなものを持っていますが、それを機能させることはできません..
<m:MapItemsControl.ItemTemplate>
<DataTemplate>
<Canvas
m:MapLayer.Position="{Binding Location}">
<Button
Visibility="{Binding IsSelected, Converter={StaticResource BoolToReverseVisibilityConverter}}"
Width="{Binding PushpinWidth}" Height="{Binding PushpinWidth}"
Style="{StaticResource LooklessButtonStyle}"
Command="{Binding DataContext.SelectedPushpinChangedCommand, ElementName=LayoutRoot}"
CommandParameter="{Binding}"
Cursor="Hand">
<Ellipse
Width="{Binding PushpinWidth}" Height="{Binding PushpinWidth}" Stroke="Black" Fill="{Binding IsGPSDataRecent, Converter={StaticResource BoolToGreenRedBrushConverter}}" StrokeThickness="1">
<ToolTipService.ToolTip>
<TextBlock Text="{Binding DeviceId}" />
</ToolTipService.ToolTip>
</Ellipse>
</Button>
<ContentControl
Visibility="{Binding IsSelected, Converter={StaticResource BoolToVisibilityConverter}}"
DataTemplate="{StaticResource TrackedAssetTemplate}" />
だから、私の考えは、最初のリスボックスにはまっすぐなテンプレートがあるということです。マップ上でアイテムが選択されたときに同じデータ テンプレートを使用できます。それ以外の場合はボタンを表示します。テンプレートをマップ内でラップしようとしましContentControl
たが、うまくいきませんでした。
それで、質問はデータテンプレート内にデータテンプレートをラップする方法ですか?