例外はありますが、コード ビハインドで Views オブジェクトを操作することはお勧めしません。これはxaml
ファイルで行う必要があります。
この例は、WPF を使用する場合の不適切なコーディング方法です。
切り替えStyles
て使うのが一番StyleSelectors
です。あなたの場合、ListView の ItemContainerStyleSelector プロパティを設定します。
<Style x:Key="ItemStyle" TargetType="ListViewItem">
<!-- Setters and Triggers -->
</Style>
<Style x:Key="TrackSelectedStyle" TargetType="ListViewItem">
<!-- Setters and Triggers -->
</Style>
<example:TrackSelectionStyleSelectorx:Key="myContainerStyleSelector"
ItemsStyle ="{StaticResource ItemStyle}"
TrackSelectedStyle ="{StaticResource TrackSelectedStyle}"/>
<ListView ... ItemContainerStyleSelector="{StaticResource myContainerStyleSelector}"/>
StyleSelector
クラス (別の .cs ファイルに入れます) :
public class TrackSelectionStyleSelector: StyleSelector
{
public Style ItemsStyle {get; set;}
public Style TrackSelectedStyle {get; set;}
public override Style SelectStyle( object item, DependencyObject container )
{
if ( /* isTrackSelected logic */ )
return TrackSelectedStyle;
return ItemsStyle;
}
}
item パラメーターを ListViewItems コンテンツ タイプの型にキャストすることを忘れないでください。