1

私はデータテンプレートを持っています

<DataTemplate x:Key="ConnectorItemFactory">
    <Button Style="{StaticResource TextOnlyActionTileButtonStyle}" Margin="0,0,5,0"
                HorizontalAlignment="Stretch"
                VerticalAlignment="Stretch"
                HorizontalContentAlignment="Stretch"
                VerticalContentAlignment="Stretch"
                Content="{Binding}"
                ContentTemplate="{StaticResource TileTemplate}"
                Command="{StaticResource NavigationCommand}"
                CommandParameter="{Binding}"
        Height="156"
        Width="156"
        >
      <i:Interaction.Behaviors>
        <UICommon:XboxBehavior VuiBinding="{Binding VuiTitle}"/>
      </i:Interaction.Behaviors>
    </Button>
  </DataTemplate>

ContentTemplate として、別のデータ テンプレートが使用されます

<DataTemplate x:Key="TileTemplate">
  <Grid VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Background="{StaticResource ActionButtonBackgroundBrush}">
    <StackPanel Orientation="Vertical" HorizontalAlignment="Left" VerticalAlignment="Bottom" Margin="7,7,7,4">
      <Controls:TrimmedTextBlock Text="{Binding Title}" Style="{StaticResource TextOnlyTileTitleStyle}" TextWrapping="Wrap" />
      <Controls:TrimmedTextBlock Text="{Binding Converter={StaticResource SubtitleTextFormatter}}" Style="{StaticResource TextOnlyTileSubtitleStyle}"/>
    </StackPanel>
  </Grid>
</DataTemplate>

TemplateFactory を使用してコンテンツ テンプレートをロードしています

 public class GridTemplateFactory : ModelViewTemplateFactory
        {
            protected override void OnContentChanged(object oldContent, object newContent)
            {
                base.OnContentChanged(oldContent, newContent);

                var dataTemplate = Application.Current.Resources["ConnectorItemFactory"] as DataTemplate;

                // var grid = ((Button)dataTemplate.LoadContent()).ContentTemplate.LoadContent();
                // ((Grid)grid).Background = new SolidColorBrush(Colors.Orange);

                // ((Button)dataTemplate.LoadContent()).ContentTemplate.LoadContent().SetValue(Grid.BackgroundProperty, new SolidColorBrush(Colors.Orange));


                this.ContentTemplate = dataTemplate;
            }
        }

OnContentChanged メソッドで、TileTemplate データ テンプレートから Grid の背景色を変更したいと考えています。上記のコメント付きコードのように実行しようとしましたが、うまくいきません。ここで色を変更するにはどうすればよいですか?

4

0 に答える 0