0

我正在尝试TextBlock在 a中设置两个GridViewColumn

<GridViewColumn.CellTemplate>
  <DataTemplate>
    <TextBlock TextWrapping="Wrap" Text="{Binding PlayerA}" />
    <TextBlock TextWrapping="Wrap" />
  </DataTemplate>
</GridViewColumn.CellTemplate>

但是我知道内容已经设置好了,为什么?

4

1 回答 1

1

DataTemplate物业只能有一个孩子。你正在设置两个孩子,两个TextBoxes

您必须将 包含TextBoxes在一个公共容器中。

如果你想要一个简单的水平连接,你可以这样写:

<GridViewColumn.CellTemplate>
  <DataTemplate>
    <StackPanel Orientation="Horizontal">
      <TextBlock Text="blabla1"/>
      <TextBlock Text="blabla2"/>
    </StackPanel>
  </DataTemplate>
</GridViewColumn.CellTemplate>

Width如果你想在两者之间平均分配TextBoxes,你可以这样写:

<GridViewColumn.CellTemplate>
  <DataTemplate>
    <Grid>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="*"/>
      </Grid.ColumnDefinitions>
      <TextBlock Grid.Column="0" Text="1"/>
      <TextBlock Grid.Column="1" Text="2"/>
    </Grid>
  </DataTemplate>
</GridViewColumn.CellTemplate>

WPF 容器有很多,这取决于您要实现的布局,但规则是:DataTemplate 必须只包含一个元素

于 2016-08-31T18:53:12.990 回答