我正在开发一个项目(适用于带有C#的Visual Studio 2012的Windows Phone 8),我想在其中显示一些项目:
所以我认为我可以使用stackpanel做到这一点。但我不确定如何添加具有上述属性的项目,以及能够从XAML添加这些项目。我累了通过stackpanel中的ItemsControl添加项目,但我不确定如何添加更复杂的项目,如我想要的。
答案 0 :(得分:2)
最好的方法是使用ListBox或LongListSelector而不是StackPanel。然后你可以:
首先,在您的代码隐藏/ ViewModel / what-have-you中,您需要创建要显示的ObservableCollection对象。在添加,删除项目等的情况下,ObservableCollection将让控件知道更新
public ObservableCollection<T> foo = new ObservableCollection<T>();
在XAML中,您需要将此ObservableCollection数据绑定到您创建的ListBox:
<ListBox x:Name="ListBox" ItemsSource="{Binding foo}" />
最后,您可以像这样定义ListBox的ItemTemplate:
<ListBox x:Name="ListBox" ItemsSource="{Binding foo}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="{Binding Title}" />
<TextBlock Text="{Binding Description}" />
<Image Source="{Binding Image}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我强烈建议阅读this guide,特别是“将控件绑定到对象集合”以及DataTemplates之后的部分。 :)