是否可以在XAML中添加多个列对齐的控件作为ListViewItem?

时间:2012-05-17 15:38:24

标签: wpf xaml listview

我有ListView我需要在XAML中添加固定数量的项目。 (我不需要动态地将项添加到列表中,我也想在xaml中处理数据绑定。)

我了解如何使用ListViewItems

将文字添加为<ListViewItem content="blah"/>

我想做的是:

<ListViewItem><TextBox/><Label/></ListViewItem>

其中TextBox被指定为listview中的第一列,而标签指定给第二列。

这只能在XAML中完成吗?没有代码隐藏。是否可以使用数据网格?

1 个答案:

答案 0 :(得分:0)

如果您的ListView中只需要一行,并且有多列,则可以将ItemsPanel更改为具有水平方向的StackPanel

<ListView.ItemsPanel>
  <ItemsPanelTemplate>
    <StackPanel Orientation="Horizontal"></StackPanel>
  </ItemsPanelTemplate>
</ListView.ItemsPanel>

如果ListView中需要多行,您仍然可以使用stackpanel作为ListViewItem将多个元素(水平)放在一行中,并在其中放置子控件。

<ListView>
  <ListViewItem>
    <StackPanel Orientation="Horizontal">
      <TextBox></TextBox>
      <Label></Label>
    </StackPanel>
  </ListViewItem>
</ListView>

编辑:

要使列具有特定类型的控件,可以将CellTemplate分配给GridView的列。

<ListView>
<ListView.View>
    <GridView>
        <GridViewColumn Header="TextBoxColumn">
            <GridViewColumn.CellTemplate>
                <DataTemplate>
                    <TextBox Text="{Binding Anything}" />
                </DataTemplate>
            </GridViewColumn.CellTemplate>
        </GridViewColumn>
    </GridView>
</ListView.View>
</ListView>

但是,您仍然需要从代码隐藏中填充gridview。