在dataGrid上显示两个textBlock

时间:2012-12-23 17:59:55

标签: wpf panel datatemplate

是否有可能在网格上显示两个TextBlock?

我试过了,但我只看到了我的第一个TextBlock。

这是我的XAML代码:

                <ListBox x:Name="ListBoxTiers" HorizontalAlignment="Left" VerticalAlignment="Top"> 
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Border Background="#FFDEDEDE" CornerRadius="10" Margin="10">
                            <StackPanel Orientation="Horizontal">
                                <Grid Height="89" Width="975">
                                    <TextBlock x:Name="TxtBox_CodeTiers" TextWrapping="Wrap" Text="{Binding m_strCode}" Margin="12,23,479,30" />
                                    <TextBlock x:Name="TxtBox_NomTiers" Margin="501,23,14,24" TextWrapping="Wrap" Text="{Binding m_strNom}"/>
                                </Grid>                                                  
                            </StackPanel>
                        </Border>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

非常感谢:)

2 个答案:

答案 0 :(得分:2)

Grid是支持方向的最佳UI容器。您可以通过以下方式修改代码。

<ListBox x:Name="ListBoxTiers" HorizontalAlignment="Left" VerticalAlignment="Top"> 
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Border Background="#FFDEDEDE" CornerRadius="10" Margin="10">
                            <Grid Height="89" Width="975">
                       <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
                                <TextBlock x:Name="TxtBox_CodeTiers" Grid.Column=0 TextWrapping="Wrap" Text="{Binding m_strCode}" />
                                <TextBlock x:Name="TxtBox_NomTiers" Grid.Column=1 TextWrapping="Wrap" Text="{Binding m_strNom}"/>
                            </Grid> 
                    </Border>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

您必须根据需要调整列列宽。

答案 1 :(得分:1)

您的两个文本都在同一位置绘制。 您可以添加Grid列/ Raws或完全删除网格并保留stackPanel

你应该过Panels Overview