在许多列表视图中使用相同的样式
问题描述:
我想在许多列表视图中使用相同的样式。在我的风格中,我也定义了gridview列。在许多列表视图中使用相同的样式
但是,当我尝试运行,它抛出一个异常:
查看不能超过一个 的ListView共享。
我该如何解决这个问题?
XAML:
<Style x:Key="articleList" TargetType="{x:Type ListView}">
<Setter Property="VirtualizingStackPanel.IsVirtualizing" Value="True"/>
<Setter Property="ScrollViewer.IsDeferredScrollingEnabled" Value="True"/>
<Setter Property="ListView.ItemsSource" Value="{Binding}"/>
<Setter Property="ListView.View">
<Setter.Value>
<GridView>
<GridViewColumn Header="Subject" Width="300">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Subject}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Size" Width="75">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SizeFormatted}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Poster" Width="175">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Poster}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn Header="Age" Width="75">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding AgeFormatted}"/>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</Setter.Value>
</Setter>
答
添加x:Shared property到你的GridView资源。在这个例子中查看GridView资源。
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Window1"
x:Name="Window"
Title="Window1"
Width="640" Height="480">
<Window.Resources>
<GridView x:Key="ViewBase1" x:Shared="False">
<GridViewColumn Header="Blah1" Width="70"/>
<GridViewColumn Header="Blah2" Width="70"/>
<GridViewColumn Header="Blah3" Width="70"/>
</GridView>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<ListView Margin="0,0,0,120" View="{DynamicResource ViewBase1}" />
<ListView Margin="272,0,91,120" View="{DynamicResource ViewBase1}" />
</Grid>
</Window>
+4
+1保存我输入了很多代码! – JLWarlow 2011-01-26 16:00:22
你能发表你的部分代码吗? – 2010-03-28 19:11:26
你能告诉我们你的风格吗? – 2010-03-29 14:36:10
我已更新问题 – ErikTJ 2010-03-29 19:35:15