在 GridViewColumn 中设置多个 TextBlock
Set multiple TextBlock inside a GridViewColumn
我正在尝试在 GridViewColumn
中设置两个 TextBlock
:
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding PlayerA}" />
<TextBlock TextWrapping="Wrap" />
</DataTemplate>
</GridViewColumn.CellTemplate>
但是我知道内容已经设置好了,为什么?
DataTemplate
属性只能有一个child。你设置了两个children,两个TextBoxes
.
您必须将 TextBoxes
包含在一个公共容器中。
如果想要简单的水平拼接,可以这样写:
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="blabla1"/>
<TextBlock Text="blabla2"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
如果你想在两个TextBoxes
之间平均分配Width
,你可以这样写:
<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 必须只包含一个元素.
我正在尝试在 GridViewColumn
中设置两个 TextBlock
:
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock TextWrapping="Wrap" Text="{Binding PlayerA}" />
<TextBlock TextWrapping="Wrap" />
</DataTemplate>
</GridViewColumn.CellTemplate>
但是我知道内容已经设置好了,为什么?
DataTemplate
属性只能有一个child。你设置了两个children,两个TextBoxes
.
您必须将 TextBoxes
包含在一个公共容器中。
如果想要简单的水平拼接,可以这样写:
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="blabla1"/>
<TextBlock Text="blabla2"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
如果你想在两个TextBoxes
之间平均分配Width
,你可以这样写:
<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 必须只包含一个元素.