读书人

关于ListView的ItemContainerStyle的样

发布时间: 2012-04-11 17:42:33 作者: rapoo

关于ListView的ItemContainerStyle的样式问题
我的ListView的的ItemSource是通过MVVM方式绑定的(<ListView Name="ListViewEvent" ItemsSource="{Binding RecvEventViewModelCollection}">),这样每个GridColumn绑定源中的每个项(DisplayMemberBinding="{Binding Path=RecvTime}") ,现在的问题是,我想重新实现每个ListViewItem的样式,
<Style x:Key="Custom1ListViewItemStyle" TargetType="{x:Type ListViewItem}">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Yellow"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color=" Red"/>
</Style.Resources>
<Setter Property="Panel.Background" Value="LightBlue"/>
<Setter Property="Foreground" Value="White"></Setter>
<Setter Property="Focusable" Value="False"></Setter>
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<Border BorderThickness="{TemplateBinding Border.BorderThickness}"
BorderBrush="{TemplateBinding Border.BorderBrush}"
Background="{TemplateBinding Panel.Background}"
Name="Bd"
SnapsToDevicePixels="True">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Selector.IsSelected" Value="True">
<Setter Property="Panel.Background" TargetName="Bd">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.HighlightBrushKey}" />
</Setter.Value>
</Setter>
<Setter Property="TextElement.Foreground">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.HighlightTextBrushKey}" />
</Setter.Value>
</Setter>
</Trigger>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="Selector.IsSelected" Value="True"/>
<Condition Property="Selector.IsSelectionActive" Value="False"/>
</MultiTrigger.Conditions>
<Setter Property="Panel.Background" TargetName="Bd">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.ControlBrushKey}" />
</Setter.Value>
</Setter>
<Setter Property="TextElement.Foreground">
<Setter.Value>


<DynamicResource ResourceKey="{x:Static SystemColors.ControlTextBrushKey}" />
</Setter.Value>
</Setter>
</MultiTrigger>
<Trigger Property="UIElement.IsEnabled" Value="False">
<Setter Property="TextElement.Foreground">
<Setter.Value>
<DynamicResource ResourceKey="{x:Static SystemColors.GrayTextBrushKey}" />
</Setter.Value>
</Setter>
</Trigger>
<Trigger Property="UIElement.IsMouseOver" Value="True">
<Setter Property="Panel.Background" TargetName="Bd" Value="Blue">
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>-->
</Style>
红色的部分不知道该怎么写,如果我只放个<ContentPresenter/>,在listview中就无法显示四列的值(比如“时间”、“名称”、“事件”、“描述”),而只显示了RecvEventViewModelCollection这个类名,所以想请大大们看看,我<ContentPresenter/>这里该怎么写,刚学WPF,请大大们不吝指教啊!先谢过了!

[解决办法]
参考一下这个例子:
http://msdn.microsoft.com/zh-cn/library/ms743659.aspx

读书人网 >.NET Framework

热点推荐