2013-10-24 2 views
1

WPF Project를 만들었습니다. 이 GridControl 및 슬라이더 사용했습니다! 슬라이더 값을 사용하여 GridControl의 FontSize를 BindingINotifyProperty을 통해 변경했습니다. 문제는 폰트 크기의 값을 변경하는 것입니다하지만에 Null Object Reference Error을 적용하고 생성되지 않습니다WPF에서 Slider를 사용하여 Grid의 글꼴 크기를 설정하는 방법

CS 파일 :

private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) 
     { 
      // ... Get Slider reference. 
      var slider = sender as Slider; 
      // ... Get Value. 
      double value = slider.Value; 
      // ... Set Window Title. 
      this.grid.FontSize = value; // Error HERE 
     } 

XAML 코드가

<Grid> 
      <Slider Minimum="15" Maximum="30" Value="{Binding GridFontSize, Mode=TwoWay}" ValueChanged="Slider_ValueChanged" /> 

      <dxg:GridControl AutoGenerateColumns="AddNew" Name="grid" Margin="0,25,0,0"> 
      <dxg:GridControl.View> 
         <dxg:TableView Name="View" AllowEditing="False" ShowTotalSummary="True" PreviewMouseDown="View_PreviewMouseDown" MouseDown="View_MouseDown" /> 
       </dxg:GridControl.View> 
      </dxg:GridControl> 
    </Grid> 

이 문제를 해결하는 방법 문제? 누구든지 내 쿼리에 대답 할 수 있습니까?

답변

1

첫째는 Name 속성을 사용하여 Grid 이름을 지정 :

<Grid Name="YourGrid"> 
    <Slider Minimum="15" Maximum="30" Value="{Binding GridFontSize, Mode=TwoWay}" 
     ValueChanged="Slider_ValueChanged" /> 
     <dxg:GridControl AutoGenerateColumns="AddNew" Name="grid" Margin="0,25,0,0"> 
     <dxg:GridControl.View> 
      <dxg:TableView Name="View" AllowEditing="False" ShowTotalSummary="True" 
       PreviewMouseDown="View_PreviewMouseDown" MouseDown="View_MouseDown" /> 
     </dxg:GridControl.View> 
    </dxg:GridControl> 
</Grid> 

이제 그 이름으로 코드에서 참조 할 수 있습니다 :

private void Slider_ValueChanged(object sender, 
    RoutedPropertyChangedEventArgs<double> e) 
{ 
    // ... Get Slider reference. 
    var slider = sender as Slider; 
    // ... Get Value. 
    double value = slider.Value; 
    // ... Set Window Title. 
    TextElement.SetFontSize(YourGrid, value); 
} 
+0

는 IT 생성

나는 글꼴 크기도 슬라이더에 바인딩 아래의 글꼴 크기에 변환기를 가지고있다 유사한 코드를 : Error 'System.Windows.Controls.Grid'에 'FontSize'에 대한 정의가없고 'System.Windows.Controls.Grid'형식의 첫 번째 인수를 허용하는 'FontSize'확장 메서드가 없습니다. 찾을 수 있습니다 (사용 지시문이나 어셈블리 참조가 누락 되었습니까?) ' – user2835256

+0

죄송합니다, 그것은'Attached Property (첨부 속성) '이므로 다르게 설정해야합니다. 내 수정 된 예제를 참조하십시오. – Sheridan

+0

감사의 친구! :) – user2835256

0

당신이 필요로하는, 그래서 잘못된 값이 있습니다 try catch에 코드를 넣으십시오. 캐치에서는 대신 0으로 설정하십시오. 또한 0 이하의 값을 확인하고 0으로 설정하십시오.

공용 클래스 IntToDoubleConverter : IValueConverter 는 {

public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) 
{ 
    double result = 0; 

    try 
    { 
     result = (double)((int)value); 


    } 
    catch (Exception) { } 

    return result; 
} 

public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) 
{ 
    return (int) ((double)value); 
} 

}

관련 문제