物事をまとめる方法は?
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 にどのように割り当てるのでしょうか? リスト ビュー アイテム テンプレートのどこかにある場合、選択状態を取得するにはどうすればよいですか?