コードに次の ListView があります。views:GameCard
はカスタムUserControl
で、3 つのアイテムを持つ{Binding}
有効なDataContext
オブジェクトです。カスタムがなければ、ItemContainerStyle
すべてが完全に機能します。リストにはGameCards
正しい情報が 3 つ表示されます。ItemContainerStyle
部品を追加するとすぐに、3 つの「ABCD」しか表示されません。そのため、データは引き続き正しくロードされますが、UserControl
表示されなくなりました(データが存在するかどうかを確認するために「ABCD」を追加しただけで、そうでなければ空のボックスしか得られませんでした)。
私がオンラインで見つけることができるすべての情報はContentPresenter
、テンプレートに要素を配置するだけで機能することを示しているようですが、この場合はそうではないようです. 私は何が欠けていますか?
<ListView Grid.Row="1" ItemsSource="{Binding}" BorderThickness="0,0,1,0"
ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListView.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FF614B4B" Offset="0"/>
<GradientStop Color="#FFDA7070" Offset="1"/>
</LinearGradientBrush>
</ListView.Background>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<views:GameCard />
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<TextBlock Text="ABCD" />
<ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>