2010-03-28 30 views
10

Tôi muốn sử dụng cùng một kiểu trong nhiều lần xem danh sách. Và theo phong cách của tôi, tôi cũng đã định nghĩa các cột GridView.Sử dụng cùng một kiểu trong nhiều danh sách xem

Nhưng khi tôi cố gắng để chạy, nó ném một ngoại lệ:

Xem không thể được chia sẻ bởi nhiều hơn một ListView.

Làm cách nào tôi có thể giải quyết vấn đề này?


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

Bạn có thể đăng một phần mã của mình không? –

+0

Bạn có thể cho chúng tôi thấy phong cách của bạn không? –

+0

Tôi đã cập nhật câu hỏi – ErikTJ

Trả lời

21

Thêm x:Shared property đến tài nguyên GridView của bạn. Kiểm tra tài nguyên GridView trong ví dụ này.

<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 Đã lưu tôi nhập nhiều mã! – JLWarlow

Các vấn đề liên quan