首先! 我知道它似乎是一種dup然而事實並非如此。如何使最後一個DataGrid的列佔據整個左側空間?
我有一個網格作爲DataGrid.RowDetails
的數據模板。 它有三列:兩次與Width="Auto"
與Width="*"
<DataTemplate x:Key="NotEmptyDistributionsTemplateKey">
<DataGrid ItemsSource="{Binding SoftwareVersionDistributions}"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="True"
CanUserSortColumns="False"
IsReadOnly="True"
CanUserResizeRows="False"
AutoGenerateColumns="False"
RowHeaderWidth="0"
Margin="20,5"
HorizontalAlignment="Stretch">
<DataGrid.Columns>
<DataGridTextColumn
Header="Architecture"
Binding="{Binding SoftwareArchitecture.Name, TargetNullValue=Все, FallbackValue=Все}"
Width="Auto"/>
<DataGridTextColumn
Header="Language"
Binding="{Binding SysCodepage.Title, TargetNullValue=Все, FallbackValue=Все}"
Width="Auto"/>
<DataGridHyperlinkColumn
Header="Link"
Binding="{Binding DownloadLink}"
Width="*"
CanUserResize="False"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
此模板正好顯示3列的3D,如果網格嵌套在一個單元格。 但是,當它用作RowDetaislTemplate
將出現第4個空列。 這讓我發瘋。
有沒有人有想法,爲什麼會發生這種情況?
更新1。它的外觀:
更新2。
最後我發現了靈魂。只需添加ScrollViewer.HorizontalScrollBarVisibility="Disabled"
現在,它的確定:
但我不明白這個奇怪的行爲。
更新3(可能會有所幫助的人)
最近我們發現了我們的用戶有一個bug和開發商沒有。該錯誤再次是關於DataGrid的寬度和對齊。好吧,可能這不是一個真正的bug,但我們有不同的控制行爲。
研究表明,安裝.net framework 4.5安裝程序時也更新了.net framework 4.0。這個更新以某種方式改變了DataGrid的行爲。 (到預期的)
我們要求我們的用戶安裝框架4.5,並且問題消失了。雖然我們的應用程序仍然是目標.net 4.0
你可以張貼截圖,我懷疑問題是父網格給*寬度列 – Charleh 2012-08-14 16:02:32
@Charleh。你是對的。列的寬度是*。但是,當這個數據模板作爲一個單元格的模板時,一切正常。 RowDetailsTemplate是一個問題。 – 2012-08-14 17:54:32
@Charleh。我將在明天發佈屏幕截圖 – 2012-08-14 18:09:20