首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ItemsSource数据类型显示在DataGrid中

ItemsSource数据类型显示在DataGrid中
EN

Stack Overflow用户
提问于 2010-07-28 15:03:51
回答 1查看 1.3K关注 0票数 0

我在网格中使用DataGrid在StackPanel中,这会使GridView比其首选的大小更宽。所有列都正确显示,但在最后一列之后,将显示ItemsSource数据类型名称的末尾。显然,它是绘制在背景和隐藏在正常情况下的列。

我尝试添加一个空列,其中包含MinWidth="0“和Width="*”,但就像这样,在必要时不显示水平滚动条。

如何隐藏数据类型文本?

XAML代码:

代码语言:javascript
复制
    <Grid Margin="5,5,5,5"
      Grid.IsSharedSizeScope="True">
    <Grid.RowDefinitions>
        <RowDefinition />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition Width="30" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <StackPanel Grid.Row="0"
                Grid.Column="0"
                Orientation="Vertical">
        <DataGrid ItemsSource="{Binding BudgetPositions}"
                  IsSynchronizedWithCurrentItem="True"
                  AutoGenerateColumns="False"
                  GridLinesVisibility="None"
                  HeadersVisibility="Column"
                  CanUserAddRows="False"
                  CanUserDeleteRows="False">
            <DataGrid.Resources>
            </DataGrid.Resources>
            <DataGrid.Columns>
                <!-- Budget group column -->
                <DataGridTemplateColumn Header="Budget Group"
                                        Width="Auto">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock DataContext="{Binding GroupName}"
                                       Text="{Binding Value}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <!-- Budget position column -->
                <DataGridTemplateColumn Header="Budget Position"
                                        Width="Auto">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock DataContext="{Binding PositionName}"
                                       Text="{Binding Value}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>
        <Button Content="Add budget position"
                x:Name="addPositionButton"
                Width="140"
                Command="{Binding BudgetPositions.AddNewCommand}" />
    </StackPanel>
    ...

以下是DataGrid:最右边的列显示了http://www.freeimagehosting.net/uploads/04e173120d.png的ItemsSource类型名称的截图

干杯AC

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-07-29 12:00:04

您发布的XAML不会显示任何类型名称。我的最佳猜测是,在网格的第0行和第0列中有另一个控件正在StackPanel后面呈现,并且内容是一个不覆盖ToString的对象,因此它显示类型名称。

万一有帮助:如果不希望GridView比其首选大小更宽,则可以将StackPanel或DataGrid上的HorizontalAlignment属性设置为左、右或中心。(另外,如果数据类型名称是StackPanel的一部分,那么在StackPanel上设置它就会导致它再次被隐藏。如果它不是StackPanel的一部分,那么如果您将StackPanel设置为对齐或对齐,它就不会移动,这可能会使renegade元素更容易找到。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3354217

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档