2012-08-14 42 views
15

首先! 我知道它似乎是一種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。它的外觀:

enter image description here

更新2

最後我發現了靈魂。只需添加ScrollViewer.HorizontalScrollBarVisibility="Disabled"

現在,它的確定:

enter image description here

但我不明白這個奇怪的行爲。

更新3(可能會有所幫助的人)

最近我們發現了我們的用戶有一個bug和開發商沒有。該錯誤再次是關於DataGrid的寬度和對齊。好吧,可能這不是一個真正的bug,但我們有不同的控制行爲。
研究表明,安裝.net framework 4.5安裝程序時也更新了.net framework 4.0。這個更新以某種方式改變了DataGrid的行爲。 (到預期的)
我們要求我們的用戶安裝框架4.5,並且問題消失了。雖然我們的應用程序仍然是目標.net 4.0

+0

你可以張貼截圖,我懷疑問題是父網格給*寬度列 – Charleh 2012-08-14 16:02:32

+0

@Charleh。你是對的。列的寬度是*。但是,當這個數據模板作爲一個單元格的模板時,一切正常。 RowDetailsTemplate是一個問題。 – 2012-08-14 17:54:32

+0

@Charleh。我將在明天發佈屏幕截圖 – 2012-08-14 18:09:20

回答

6

最後,我發現靈魂。

只需添加ScrollViewer.HorizontalScrollBarVisibility="Disabled"

對於那些誰的目標框架V4.0
最近,我們發現了我們的用戶有一個bug和開發商沒有。該錯誤再次是關於DataGrid的寬度和對齊。好吧,可能這不是一個真正的bug,但我們有不同的控制行爲。 研究表明,安裝.net framework 4.5安裝程序時也更新.net framework 4.0。這個更新以某種方式改變了DataGrid的行爲。 (到預期的) 我們要求我們的用戶安裝框架4.5,問題消失了。雖然我們的應用程序仍然是目標.net 4.0

相關問題