0

私はこれを機能させることができません。

データグリッドの列を動的にセットアップする必要があります。列の 1 つは、DoubleUpDown オブジェクト (このライブラリから) を持つ DataGridTemplateColumns です。

私はこのように作成しますFrameworkElementFactory

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」タイプの例外がスローされます。問題は AddHandler メソッドにあります。その行にコメントすると問題なく動作しますが、値が変更されたときに何かを行うには、そこにイベントを添付する必要があることは明らかです。

誰か助けてくれませんか?前もって感謝します

4

1 に答える 1

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));
于 2016-12-13T10:53:37.007 に答える