0

物事をまとめる方法は?

ListView を含む Windows 8 メトロ アプリケーションに取り組んでいます。リストビューに TextBlocks が含まれています。このようなもの:

マイページ.xaml:

<DataTemplate x:Key="ListViewItemTemplate">
     <StackPanel>
          <TextBlock Text="{Binding Goal, Mode=OneWay}"/>
     </StackPanel>
 </DataTemplate>

<ListView x:Name="ChainsList" 
          ItemsSource="{Binding Chains}" 
          SelectedItem="{Binding Path=SelectedChain, Mode=TwoWay}"
          ItemTemplate="{StaticResource ListViewItemTemplate}" 
          ItemContainerStyle="{StaticResource ChainsListViewItemStyle}">
</ListView>

選択/選択解除されたアイテムのデフォルトの ListView カラーが気に入らないので、デザイナー モードで [追加テンプレートの編集/生成されたアイテム コンテナーの編集] を選択し、StandardStyles.xml 内に ListViewItem スタイルの独自のコピーを作成しました。

<Style x:Key="ChainsListViewItemStyle" TargetType="ListViewItem">
    <!-- a lot of setters goes here -->
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListViewItem">
                <Border x:Name="OuterContainer">
                    <!-- description of visual states goes here (I changed some colors) -->
                    <Grid x:Name="ReorderHintContent" Background="Transparent">
                       <!-- List view item structure details goes here -->
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

選択内容に応じて、リスト ビュー アイテムのテキストの色を変更したいと考えています。項目が選択されている場合、TextBlock の色は黒でなければなりません。アイテムが選択されていない場合 - ホワイト。

ここに質問があります: TextBlock の色を変更するためのロジックをどこに配置すればよいですか? StandardStyles.xml のどこかにある場合、TextBlock にどのように割り当てるのでしょうか? リスト ビュー アイテム テンプレートのどこかにある場合、選択状態を取得するにはどうすればよいですか?

4

1 に答える 1