2013-03-22 40 views
6

Có cách nào để cung cấp cho mỗi cột trong một DataGridView một chiều rộng phần trăm của tổng lưới không? Tôi hiện đang sử dụng chiều rộng cố định nhưng muốn cung cấp cho một cột một chiều rộng 15%, một số khác có chiều rộng 25%, v.v. sao cho 100% của bảng được lấp đầy và thay đổi kích thước bằng lưới.Chiều rộng cột DataGridView là phần trăm

Trả lời

1

Có thể sử dụng công cụ chuyển đổi giá trị
Điều này trừ một tham số nhưng bạn có thể phân chia thông số đó theo thông số.

<local:WidthConverter x:Key="widthConverter"/> 

<GridViewColumn Width="{Binding ElementName=lvCurDocFields, Path=ActualWidth, Converter={StaticResource widthConverter}, ConverterParameter=100}"> 



[ValueConversion(typeof(double), typeof(double))] 
    public class WidthConverter : IValueConverter 
    { 
     public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      // value is the total width available 
      double otherWidth; 
      try 
      { 
       otherWidth = System.Convert.ToDouble(parameter); 
      } 
      catch 
      { 
       otherWidth = 100; 
      } 
      if (otherWidth < 0) otherWidth = 0; 

      double width = (double)value - otherWidth; 
      if (width < 0) width = 0; 
      return width; // columnsCount; 
     } 

     public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
     { 
      throw new NotImplementedException(); 
     } 
    } 
+1

Cảm ơn bạn đã nhập mã mẫu. Tôi chắc chắn điều này sẽ được sử dụng bởi một ai đó mặc dù tôi tìm thấy câu trả lời khác dễ dàng hơn nhiều để thực hiện. Tôi đánh giá cao sự giúp đỡ của bạn mặc dù! –

-3

chỉ tạo tệp da. và áp dụng thông qua cấu hình web

+0

Vì đây là câu trả lời hợp lệ, vui lòng cung cấp thêm một số ngữ cảnh, ví dụ, liên kết hoặc một cái gì đó để biện minh cho câu trả lời của bạn. – ethrbunny

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