我是C#/ XAML编码的新手,我有以下问题。
我有这个ListView,我已经为生成的项目添加了Aditional Templates
<ListView x:Name="lvItems" HorizontalAlignment="Left" Height="251" Margin="10,42,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.5,0.5" Width="1346" SelectionChanged="lvItems_SelectionChanged" Foreground="{x:Null}" ItemTemplate="{StaticResource Standard500x130ItemTemplate}">
如果我去编辑模板,我会得到以下代码
<!-- Grid-appropriate 500 by 130 pixel item template as seen in the GroupDetailPage -->
<DataTemplate x:Key="Standard500x130ItemTemplate">
<Grid Height="110"
Width="480"
Margin="10">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Border Background="{StaticResource ListViewItemPlaceholderBackgroundThemeBrush}"
Width="110"
Height="110">
<Image Source="{Binding Image}"
Stretch="UniformToFill"
AutomationProperties.Name="{Binding Title}" />
</Border>
<StackPanel Grid.Column="1"
VerticalAlignment="Top"
Margin="10,0,0,0">
<TextBlock Text="{Binding Title}"
Style="{StaticResource TitleTextStyle}"
TextWrapping="NoWrap" />
<TextBlock Text="{Binding Subtitle}"
Style="{StaticResource CaptionTextStyle}"
TextWrapping="NoWrap" />
<TextBlock Text="{Binding Description}"
Style="{StaticResource BodyTextStyle}"
MaxHeight="60" />
</StackPanel>
</Grid>
</DataTemplate>
现在我想访问Texblocks Title,Subtitle,Description来添加我从XML文件解析的数据。我想我需要访问每个TextBlock的Binding,但我不知道如何做到这一点。你能救我吗?
提前感谢您的帮助
答案 0 :(得分:2)
您需要设置ItemsSource
的{{1}}属性,然后根据您创建的模板为每个项目填充字段。
ListView
这里我假设lvItems.ItemsSource = MyObjectsCollection;
是你的对象的集合。从您的模板判断,数据类应如下所示:
MyObjectCollection
所以public class TheObject
{
public string Title { get; set; }
public string Subtitle { get; set; }
public string Description { get; set; }
public string Image { get; set; }
}
应该是MyObjectsCollection
个对象的数组(或IEnumerable或List)。