2016-09-16 2 views
0

이 작업을 수행 할 수 없습니다.처리기를 공장에 추가하십시오.

DataGrid에 대한 열을 동적으로 설정해야합니다.

FrameworkElementFactory factory3 = new FrameworkElementFactory(typeof(DoubleUpDown)); 
factory3.SetValue(DoubleUpDown.ValueProperty, binding); 
factory3.AddHandler(DoubleUpDown.ValueChangedEvent, new RoutedEventHandler(UnitsChanged)); 

public void UnitsChanged(object sender, RoutedEventArgs e) 
    { 
     //do stuff with e.OriginalSource 
    } 

이 유형 'System.Windows.Markup.XamlParseException'의 예외가 발생합니다 : 열 중 하나 (this 라이브러리)를 DoubleUpDown 객체와 DataGridTemplateColumns

나는이 같은 FrameworkElementFactory을 만드는 것입니다 응용 프로그램을 실행 중입니다. 문제는 AddHandler 메서드에서, 만약 내가 그 라인을 잘 동작하지만, 분명히 내가 값을 변경하면 물건을 할 이벤트를 첨부해야합니다.

아무도 도와 줄 수 있습니까? 미리 감사드립니다.

답변

0

핸들러 유형이 유효하지 않습니다. RoutedPropertyChangedEventHandler를 사용해야합니다.

public void UnitsChanged(object sender, RoutedPropertyChangedEventArgs<object> e) 
{ 
    //do stuff with e.OriginalSource 
    Console.WriteLine(0); 
} 

FrameworkElementFactory factory3 = new FrameworkElementFactory(typeof(DoubleUpDown)); 
        factory3.SetValue(DoubleUpDown.ValueProperty, 10.0); 
        factory3.AddHandler(DoubleUpDown.ValueChangedEvent, new RoutedPropertyChangedEventHandler<object>(UnitsChanged)); 
관련 문제