C# 向stackpanel添加自定义项
我正在进行一个项目(针对Windows Phone 8,使用Visual Studio 2012和C#),其中我想显示一些项目,每个项目都有:C# 向stackpanel添加自定义项,c#,visual-studio-2012,windows-phone-8,custom-controls,itemscontrol,C#,Visual Studio 2012,Windows Phone 8,Custom Controls,Itemscontrol,我正在进行一个项目(针对Windows Phone 8,使用Visual Studio 2012和C#),其中我想显示一些项目,每个项目都有: 一幅画 头衔 描述 能够被点击(以便我可以导航到某个页面) 所以我想我可以用stackpanel来做。但我不确定如何添加具有上述属性的项,以及如何从XAML添加这些项。我厌倦了通过stackpanel中的ItemsControl添加项目,但我不确定如何添加更复杂的项目,如我想要的项目。最好的方法是使用ListBox或LongListSelector,而不
所以我想我可以用stackpanel来做。但我不确定如何添加具有上述属性的项,以及如何从XAML添加这些项。我厌倦了通过stackpanel中的ItemsControl添加项目,但我不确定如何添加更复杂的项目,如我想要的项目。最好的方法是使用ListBox或LongListSelector,而不是stackpanel。然后你可以:
- 数据将列表绑定到控件本身,该控件将自动处理从控件添加/删除项的操作
- 使用ListBox的ItemTemplate属性定义每个控件的视图
public ObservableCollection<T> foo = new ObservableCollection<T>();
公共ObservableCollection foo=新ObservableCollection();
在XAML中,您需要将此ObservableCollection数据绑定到您创建的列表框:
<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>
我强烈推荐阅读,尤其是“将控件绑定到对象集合”和后面关于DataTemplates的部分。:) 您需要自定义,在这里您可以为图片、标题等指定布局。好的,让我试试看是否可以找到相关内容:)您只需将类(视图模型)添加到项目或绑定集合中,它的视图是从
DataTemplate
创建的。我没有任何包含项目的类。我只想在我的Itemscontrol中手动添加项,并能够从XAMLI更改图片和文本。我想你的意思是你非常想创建一个usercontrol;)虽然我使用了itemscontrol而不是listbox或longlistselector,但我也会尝试这些