我的代码中有以下 ListView。views:GameCard
是一个自定义UserControl
,是一个包含三个项目{Binding}
的有效对象。DataContext
如果没有自定义,ItemContainerStyle
一切都可以完美运行——列表显示三个GameCards
带有正确信息等。一旦我添加了这个ItemContainerStyle
部分,我只得到三个“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>