2009-07-06 194 views
1

我有一個ListView,我填充ObservableCollection項目。所有工作都很好,直到我決定添加第二個列表視圖來過濾一些項目。WPF ListView不呈現模板

我現在設置的是,主listview有ItemGroup對象作爲渲染項目,顯示的項目是項目組中的第一個。設想一個帶有存儲桶的哈希表,並且該列表上呈現的項目是該組中最新的項目。

我有一個按鈕,點擊後會顯示另一個列表視圖,其中包含來自該「桶」的所有項目。但是,我在新的列表視圖中獲取的是項目的空白條目。我看到他們的物品背景,但celltemplate似乎是空的。

我唯一的猜測是有一個參考問題,因爲有些項目已經在另一個ItemSource

我附上截圖:

issue

這裏是我的DataTemplate

<DataTemplate x:Key="ResultListGroupViewCellTemplate"> 
     <!--<DockPanel>--> 
     <Grid Width="Auto" Margin="0,5,5,5" ShowGridLines="False"> 
      <Grid.ColumnDefinitions> 
       <ColumnDefinition Width="30"/> 
      </Grid.ColumnDefinitions> 
      <Grid.RowDefinitions> 
       <RowDefinition /> 
      </Grid.RowDefinitions> 

      <StackPanel Grid.Column="0"> 
       <Image Margin="2" Source="{Binding Path=StrengthImage}" 
        Height="20" Width="20" HorizontalAlignment="Left" /> 
       <TextBlock Text="{Binding Path=AddedDate}" Margin="0,3,0,0" 
           TextTrimming="CharacterEllipsis" VerticalAlignment="Center" FontFamily="Tahoma" FontSize="10" FontStyle="Italic" HorizontalAlignment="Left" /> 
      </StackPanel> 

     </Grid> 


     <!--</DockPanel>--> 
    </DataTemplate> 

下面是我設置的綁定(MatchApiObject的是用於在上述DataTemplate綁定的對象):

groupViewCollection = new ObservableCollection<MatchApiObject>(m.GroupList.OrderBy(mi => mi.AddedDate)); 

groupViewListView.DataContext = groupViewCollection; 

而且groupViewListView本身:

<ListView Name="groupViewListView" Foreground="#FF333333" 
       ItemContainerStyle="{StaticResource ListViewMatchItemStyleNotSelected}" 
       SelectionMode="Single" 
       ItemsSource="{Binding}" 
       BorderThickness="0" 
       SelectionChanged="contactsList_SelectionChanged" 
       AlternationCount="2" 
       HorizontalContentAlignment="Stretch" 
       ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
       > 
    <ListView.View> 
     <GridView x:Name="groupViewListViewGridView" AllowsColumnReorder="False"> 
      <GridView.ColumnHeaderContainerStyle> 
       <Style TargetType="GridViewColumnHeader"> 
        <Setter Property="Visibility" Value="Collapsed" /> 
       </Style> 
      </GridView.ColumnHeaderContainerStyle> 
      <GridViewColumn CellTemplate="{StaticResource StrengthValMatchColumnCellTemplate}" Width="0" Header="Strength" /> 
      <GridViewColumn CellTemplate="{StaticResource DateMatchColumnCellTemplate}" Width="0" Header="Date" /> 

      <!--<GridViewColumn CellTemplateSelector="{StaticResource myMatchListItemTemplateSelector}" Width="Auto" Header="Result" />--> 
      <GridViewColumn CellTemplate="{StaticResource ResultListGroupViewCellTemplate}" Width="Auto" Header="Result" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

編輯: 當我調試,列表視圖在適當的項目結合(例如,CURRENTITEM表明,應該用於綁定正確的對象),但對於一些他們沒有出現的原因。

+0

以多種方式在多個位置顯示相同的數據沒有問題。你可以發佈或給我們更多關於第二個ListView的實際模板的細節嗎?它看起來像ItemsSource至少被填充,因爲有一個背景,所以這個問題很可能是數據綁定。 – rmoore 2009-07-06 23:44:44

回答

0

我很笨。這似乎是我的主數據模板列上的寬度=「自動」,並沒有一直蔓延。設置寬度= 100顯示該部分。也許這是父母不會一直傳播的。