使用CustomTemplate垂直显示List <customobject>需要什么样的控件?</customobject>

时间:2011-05-05 15:57:46

标签: c# wpf

假设我有List<MyObject>, 哪些商店

class MyObject
{
  public String Headline {get;set;}
  public DateTime MyDate {get;set;}
}

我希望以垂直顺序显示每个MyObject,以使其看起来像列表中的条目,带有圆角,并将值写在背景图像上。

我用谷歌搜索了两张看起来接近我想要的显示控件的图片: http://assets.gearlive.com/blogimages/gallery/sonos-iphone-app/sonos-iphone-zone-menu_medium.jpg
http://iconfactory.com/twitterrific_touch/images/screenshot_list.png

我可以使用什么样的控制?它就像一个带有自定义模板的Repeater / ListView。 (假设我没有任何图形技能。如何创建一个圆角和矩形作为背景的矩形?)

(我是WPF的新手)

2 个答案:

答案 0 :(得分:2)

如果您不想选择,请转到ItemsControl。否则使用ListBox

ListBox继承自Selector,继承自ItemsControl并添加了选择功能。

XAML:

<ItemsControl Name="ItemsControl1">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="<Binding Headline}" />
                <TextBlock Text="<Binding MyDate}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

代码背后:

ItemsControl1.ItemsSource = ListOfMyObjects;

答案 1 :(得分:1)

你应该使用ListBox。然后,为您的对象类型DataTemplate制作一个here is a nice explanation on DataTemplates。您还应该MyObjectINotifyPropertyChanged派生,以便在更改对象中的值时,它会自动更新您的UI。另外一件事,您应该从List<MyObject>更改为ObservableCollection<MyObject>,以便在添加/删除项目时自动更新ListBox