2012-08-14 30 views
15

Đầu tiên! Tôi biết nó có thể có vẻ là một loại dup tuy nhiên nó không phải là.Làm thế nào để cột DataGrid cuối cùng chiếm toàn bộ không gian bên trái?

Tôi có lưới làm mẫu dữ liệu cho DataGrid.RowDetails. Nó có ba cột: hai với Width="Auto" và 3d với 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> 

mẫu này cho thấy chính xác 3 cột, nếu lưới được lồng trong một tế bào. Nhưng khi nó được sử dụng như RowDetaislTemplate cột trống thứ 4 xuất hiện. Điều này làm tôi phát điên.

Có ai có ý tưởng tại sao điều này có thể xảy ra không?

Cập nhật 1. Làm thế nào nó trông giống:

enter image description here

Cập nhật 2.

Cuối cùng tôi tìm thấy linh hồn. Chỉ cần thêm ScrollViewer.HorizontalScrollBarVisibility="Disabled"

Bây giờ là ok:

enter image description here

Nhưng tôi không thể hiểu được hành vi kỳ quặc này.

Cập nhật 3 (có thể hữu ích cho một ai đó)

Gần đây chúng tôi đã tìm thấy một lỗi mà người dùng của chúng tôi đã và các nhà phát triển thì không. Các lỗi đã một lần nữa về chiều rộng và sự liên kết của DataGrid. Vâng, có thể đây không phải là một lỗi, nhưng chúng tôi có hành vi khác nhau của sự kiểm soát.
Nghiên cứu cho thấy rằng khi cài đặt .net framework 4.5 installer cũng được cập nhật .net framework 4.0. Bản cập nhật này thay đổi bằng cách nào đó hành vi của DataGrid. (theo dự kiến)
Chúng tôi đã yêu cầu người dùng của chúng tôi cài đặt khung 4.5 và vấn đề bị biến mất. Mặc dù ứng dụng của chúng tôi vẫn nhắm mục tiêu .net 4.0

+0

Bạn có thể đăng ảnh chụp màn hình hay không, tôi nghi ngờ vấn đề là lưới bố mẹ cho cột * chiều rộng – Charleh

+0

@Charleh. Bạn đúng rồi. Chiều rộng của một cột là *. Nhưng khi mẫu dữ liệu này phục vụ như là một khuôn mẫu cho một tế bào tất cả mọi thứ hoạt động tốt. RowDetailsTemplate là một vấn đề. –

+0

@Charleh. Tôi sẽ đăng ảnh chụp màn hình vào ngày mai –

Trả lời

6

Cuối cùng tôi tìm thấy linh hồn.

Chỉ cần thêm ScrollViewer.HorizontalScrollBarVisibility="Disabled"

Đối với những người nhắm đến Khung v4.0
Gần đây chúng tôi tìm thấy một lỗi mà người dùng của chúng tôi đã và các nhà phát triển thì không. Các lỗi đã một lần nữa về chiều rộng và sự liên kết của DataGrid. Vâng, có thể đây không thực sự là lỗi nhưng chúng tôi có hành vi khác nhau của kiểm soát. Nghiên cứu cho thấy rằng khi cài đặt .net framework 4.5 installer cũng được cập nhật .net framework 4.0. Bản cập nhật này thay đổi bằng cách nào đó hành vi của DataGrid. (đến dự kiến) Chúng tôi đã yêu cầu người dùng cài đặt khung 4.5 và sự cố đã biến mất. Mặc dù ứng dụng của chúng tôi vẫn nhắm mục tiêu .net 4.0

Các vấn đề liên quan