在启动时突出显示SelectedItem

时间:2014-03-20 13:36:21

标签: c# wpf

我试图在启动时突出显示(通过更改背景)SelectedItem集合。 我有一个数据模板来定义项目。我可以使用边框来设置背景。在选择项目时完成突出显示的那一刻。

<DataTemplate.Triggers>                       
    <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType=syncfusion:CarouselItem}}" Value="True">
       <Setter TargetName="border" Property="Background" Value="Red"/>
   </DataTrigger>
</DataTemplate.Triggers>

但是因为在启动时SelectedItem已经处于活动状态,所以似乎也可以突出显示逻辑。

2 个答案:

答案 0 :(得分:1)

您是否尝试过只选择集合中的项目以确保选择了一个项目?您可以声明填充集合的项类型的属性,以将数据绑定到ItemsControl.SelectedItem属性。然后在您的代码或视图模型中,您可以执行此操作(假设您的集合控件是绑定到名为Items的数据集合的数据:

<ListBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem}" ... />

...

Items = FillCollectionWithItems();
if (Items.Count > 0) SelectedItem = Items[0];

答案 1 :(得分:0)

我的第一个想法是项目被选中,但没有聚焦,选择但不聚焦的系统颜色通常是非常浅灰色,很难看到。

如果是这种情况,您可以尝试确保该项目具有Focus on load,或者覆盖控件的system colors

这是一个覆盖控件的InactiveSelectionHighlightBrush颜色的示例:

<SomeControl.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrush}" Color="Red"/>
</SomeControl.Resources>