2010-03-28 64 views
10

我想在許多列表視圖中使用相同的樣式。在我的風格中,我也定義了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> 

+0

你能發表你的部分代碼嗎? – 2010-03-28 19:11:26

+0

你能告訴我們你的風格嗎? – 2010-03-29 14:36:10

+0

我已更新問題 – ErikTJ 2010-03-29 19:35:15

回答

21

添加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

相關問題