ListView
私はObservableCollection
のアイテムを入力しています。すべての項目をフィルタリングするために2番目のリストビューを追加するまでは、すべて正常に機能していました。WPF ListViewはテンプレートをレンダリングしません
私が今セットアップしているのは、メインリストビューにはレンダリングされたアイテムとしてItemGroup
というオブジェクトがあり、アイテムがアイテムグループの最初に表示されているということです。バケット付きのハッシュテーブルを想定し、リストに表示されるアイテムは、グループ内の最新のアイテムです。
私は、クリックすると、その "バケツ"からのすべての項目を含む別のリストビューを表示するボタンがあります。しかし、新しいリストビューに入っているのは、アイテムの空白のエントリだけです。私はアイテムスタイルの背景を見ていますが、celltemplateは空であるようです。
私の推測では、項目のいくつかはすでに別のItemSource
に入っているため、参照の問題があります。
私はスクリーンショットを添付しています。ここ
は私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の結合のために使用されるべき適切なオブジェクトを示す)結合に適切な項目があり、いくつかのために彼らが現れていない理由。
同じデータを複数の場所に複数の方法で表示することは問題ありません。 2番目のListViewの実際のテンプレートを投稿してください。バックグラウンドがあるので、ItemsSourceは少なくともポピュレートされているように見えるので、問題はデータバインディングの可能性が高いです。 – rmoore
はいくつかのコードを参照する必要があります –
いくつかのコードを追加しました、ありがとうございました。 – Max