我有一个列表框定义为:
<ListBox ... ItemTemplate="{DynamicResource User}"/>
ItemTemplate是:
<DataTemplate x:Key="User">
<DataTemplate.Resources>
<Style TargetType="{x:Type Border}" x:Key="Ordinal">
<Setter Property="Background">
<Setter.Value>
...
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Border}" x:Key="Current">
<Setter Property="Background">
<Setter.Value>
...
</Setter.Value>
</Setter>
</Style>
</DataTemplate.Resources>
<Border CornerRadius="5" Padding="5" Margin="0,0,5,0" Style="{StaticResource Ordinal}">
...
</Border>
</DataTemplate>
现在我有一个事件处理程序,它应该将提供的索引中的item样式设置为“current”:
void SetCurrent(int Index)
{
?
}
怎么做?
修改
使用ItemsControl会更容易吗?
答案 0 :(得分:0)
在这种情况下,我会使用以下组合:
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{StaticResource CurrentBrushKey}" />
并设置列表框的SelectedItem(更好 - 不使用SetCurrent()函数,只需从ViewModel中的逻辑开始)
希望这会有所帮助