2009-07-06 12 views
1

ListView私はObservableCollectionのアイテムを入力しています。すべての項目をフィルタリングするために2番目のリストビューを追加するまでは、すべて正常に機能していました。WPF 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> 

はIセットアップデータバインディング(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> 

EDIT: 私はデバッグする場合、リストビューは、(例えば、のCurrentItemの結合のために使用されるべき適切なオブジェクトを示す)結合に適切な項目があり、いくつかのために彼らが現れていない理由。

+0

同じデータを複数の場所に複数の方法で表示することは問題ありません。 2番目のListViewの実際のテンプレートを投稿してください。バックグラウンドがあるので、ItemsSourceは少なくともポピュレートされているように見えるので、問題はデータバインディングの可能性が高いです。 – rmoore

+0

はいくつかのコードを参照する必要があります –

+0

いくつかのコードを追加しました、ありがとうございました。 – Max

答えて

0

私はばかです。私の主なデータテンプレートを持つ列のWidth = "Auto"は完全に広がっていないようです。幅= 100に設定するとその部分が示されました。たぶんそれは親が全部を広げていないかもしれない。

関連する問題