2010-03-28 4 views
10

Я хочу использовать тот же стиль во многих списках. И в моем стиле я также определил столбцы gridview.Использование того же стиля во многих списках

Но когда я пытаюсь запустить, он бросает исключение:

View не может быть совместно более чем одним 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

Не могли бы вы разместить часть своего кода? –

+0

Можете ли вы показать нам свой стиль, пожалуйста? –

+0

Я обновил вопрос – ErikTJ

ответ

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

Смежные вопросы