2

我需要做一个具有单列的ListView ,其中该列是Expander

特别是我有这样的课:

public class MyItemT
{
    public string Title { get; set; }
    public TextBlock Info { get; set; }
}

以及这些对象的列表:

List<MyItemT> Mylist = new List<MyItemT>();

我需要用 Expander 对象填充 ListView,其中 Header 与 Title 绑定,Content 与 Info 属性绑定。

例如 Expander 的 ListView 是这样的:

<Expander Header="My Expander">
   <TextBlock TextWrapping="Wrap">
      Lorem ipsum dolor sit amet, consectetur
      adipisicing elit, sed do eiusmod tempor incididunt ut
      labore et dolore magna aliqua
   </TextBlock>
</Expander>

我的扩展器

...等等(很多,因为我的 ListView 有元素)...

ListView 不应该有标题栏,当然一切都将以编程方式完成。

应该怎么做?谢谢。

4

1 回答 1

2

只需为您的 ListView 定义一个 ItemTemplate 并在其中放置一个 Expander。这至少适用于 ListView 中的其他控件,因此它也应该在这里工作。

<ListView ItemsSource="{Binding YourSource}" Name="listView">
  <ListView.ItemTemplate>
    <DataTemplate>
      <Expander Header="{Binding Title}">
        <TextBlock TextWrapping="Wrap" Text="{Binding Info}" />
      </Expander>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

绑定也可以通过这样的代码来完成。

List<MyItemT> Mylist = new List<MyItemT>();
listView.ItemsSource = Mylist;

您必须更改的一件事是您的 Info 属性的类型,它应该是字符串类型。

哦,你的类应该实现INotifyPropertyChanged,否则绑定将不会总是正常工作。

于 2012-05-07T17:31:00.067 回答