2010-02-23 2 views
1

실버 라이트에서는 절대 너비를 기준으로 열 너비를 설정할 수 있도록 datagridcolumn을 약간 확장하려고합니다. 그리드의 크기에 상관없이 열은 지정된 비율의 그리드를 차지합니다.정말 대단합니다. AG_E_PARSER_BAD_PROPERTY_VALUE

어쨌든,이

public static class DataGridColumnBehaviors 
{ 
    public static readonly DependencyProperty WidthPercentageProperty = 
     DependencyProperty.RegisterAttached("WidthPercentage", typeof(double?), typeof(DataGridColumnBehaviors), 
      new PropertyMetadata(null, OnWidthPercentagePropertyChanged)); 

    public static double? GetWidthPercentage(DependencyObject d) 
    { 
     return (double?)d.GetValue(WidthPercentageProperty); 
    } 

    public static void SetWidthPercentage(DependencyObject d, double? value) 
    { 
     d.SetValue(WidthPercentageProperty, value); 
    } 

    public static void OnWidthPercentagePropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) 
    { 

    } 
} 

그리고 XAML에 내가이

AG_E_PARSER_BAD_PROPERTY_VALUE [Line: 85 Position: 100] 

라인 (85) 런타임에 다음과 같은 메시지를 생산

  <data:DataGridTemplateColumn MinWidth="200" 
             dataBehaviors:DataGridColumnBehaviors.WidthPercentage="5.0" 
             Header="Name"> 
       <data:DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBlock Text="{Binding Name}" /> 
        </DataTemplate> 
       </data:DataGridTemplateColumn.CellTemplate> 
       <data:DataGridTemplateColumn.CellEditingTemplate> 
        <DataTemplate> 
         <TextBox Text="{Binding Name, Mode=TwoWay}" /> 
        </DataTemplate> 
       </data:DataGridTemplateColumn.CellEditingTemplate> 
      </data:DataGridTemplateColumn> 

을하고 있어요 내 첫 번째 단계

입니다 이것을 :

dataBehaviors:DataGridColumnBehaviors.WidthPercentage="5.0 

아이디어가 있으십니까?

답변

2

이중에서 이중으로 변환 할 수 없습니까? 그런 CLR 레벨에서. 그리고 당신은 거의 확실하게 원하지 않습니다.

Silverlight는 double을 사용하고 double.NaN 및 double.PositiveInfinity를 사용하여 '특별'값을 나타냅니다.

+0

아, 그래서 기본 값을 double로 설정합니다. 오히려 이중을 사용합니까? ... 그 속임수를했습니다 감사합니다! – Jeff

+0

아마 double.NaN을 선택 하겠지만 첨부 된 동작에서이 '특별'값을 확인하고 너비 또는 기타 설정 등 특별한 작업을 수행해야만 특별한 값을 선택할 수 있습니다. 처럼. –