2 Stimmen

XAML-Refactoring - Extrahieren von allgemeinem Markup

Ich habe einige xaml am Ende dieser Frage eingefügt. Es ist von einer Ressource-Datei in meinem Projekt.

Das HierarchicalDataTemplate und das DataTemplate haben genau dieselbe Struktur. Gibt es eine Möglichkeit, die gemeinsamen Teile zu extrahieren und auf sie zu verweisen?

<HierarchicalDataTemplate DataType="{x:Type local:ChapterViewModel}"
                          x:Key="ChapterOutcomesTemplate"
                          ItemsSource="{Binding Path=Chapter.Outcomes}"
                          ItemTemplate="{StaticResource AssignedOutcomeTemplate}">
    <StackPanel Orientation="Horizontal">
        <Image Height="16"
            Width="16"
            Margin="0,0,0,0"
            RenderOptions.BitmapScalingMode="NearestNeighbor"
            SnapsToDevicePixels="True"
            Source="{Binding Source={x:Static images:DocumentImages.Outcomes}}"
            Visibility="{Binding IsOutcomesAssigned, Converter={StaticResource BooleanToVisibility}, Mode=OneWay}"
                   />
        <Image Height="16"
            Width="16"
            RenderOptions.BitmapScalingMode="NearestNeighbor"
            SnapsToDevicePixels="True"
            Margin="5,0,0,0"
            Source="{Binding Source={x:Static images:DocumentImages.Chapter}}" 
                   />
        <TextBlock Text="{Binding Chapter.Name}"
            Margin="5,0,0,0" />
    </StackPanel>
</HierarchicalDataTemplate>
<DataTemplate x:Key="ItemTemplate">
    <StackPanel Orientation="Horizontal">
        <Image Height="16"
            Width="16"
            Margin="0,0,0,0"
            RenderOptions.BitmapScalingMode="NearestNeighbor"
            SnapsToDevicePixels="True"
            Source="{Binding Source={x:Static images:DocumentImages.Outcomes}}"
            Visibility="{Binding IsOutcomesAssigned, Converter={StaticResource BooleanToVisibility}, Mode=OneWay}" />
        <Image Height="16"
            Width="16"
            RenderOptions.BitmapScalingMode="NearestNeighbor"
            SnapsToDevicePixels="True"
            Margin="5,0,0,0"
            Source="{Binding Source={x:Static images:DocumentImages.Chapter}}" />
        <TextBlock Text="{Binding Chapter.Name}"
            Margin="5,0,0,0" />
    </StackPanel>

</DataTemplate>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X