我在网格中使用DataGrid在StackPanel中,这会使GridView比其首选的大小更宽。所有列都正确显示,但在最后一列之后,将显示ItemsSource数据类型名称的末尾。显然,它是绘制在背景和隐藏在正常情况下的列。
我尝试添加一个空列,其中包含MinWidth="0“和Width="*”,但就像这样,在必要时不显示水平滚动条。
如何隐藏数据类型文本?
XAML代码:
<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
发布于 2010-07-29 12:00:04
您发布的XAML不会显示任何类型名称。我的最佳猜测是,在网格的第0行和第0列中有另一个控件正在StackPanel后面呈现,并且内容是一个不覆盖ToString的对象,因此它显示类型名称。
万一有帮助:如果不希望GridView比其首选大小更宽,则可以将StackPanel或DataGrid上的HorizontalAlignment属性设置为左、右或中心。(另外,如果数据类型名称是StackPanel的一部分,那么在StackPanel上设置它就会导致它再次被隐藏。如果它不是StackPanel的一部分,那么如果您将StackPanel设置为对齐或对齐,它就不会移动,这可能会使renegade元素更容易找到。)
https://stackoverflow.com/questions/3354217
复制相似问题