我在一個GridPanel內部使用了一個DataGrid,導致GridView比它的首選大小更寬。所有列都正確顯示,但在最後一列後顯示ItemsSource數據類型名稱的末尾。顯然它在背景中被繪製,並且在正常情況下被列隱藏。DataGrid中顯示的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的截圖: The rightmost column shows the ItemsSource type name http://www.freeimagehosting.net/uploads/04e173120d.png
乾杯AC
這不是我的XAML,它顯示的是typename,它是DataGrid。該文本不在DataGrid的後面,但在DataGrid的列後面。 DataGrid的樣式應用於類型名稱文本。 – 2010-07-29 12:10:32
@Anonymous Coward:你有DataGrid的自定義模板還是自定義樣式?你在跑什麼主題?如果我運行在新的WPF項目中發佈的XAML並添加足夠的數據上下文以使綁定正常工作,則我看不到任何類型名稱顯示。你是否在一個空的項目上得到這種行爲? – Quartermeister 2010-07-29 12:22:32
你說得對,當然。我忘了刪除我的「修復」。抱歉。 – 2010-07-29 12:40:53