1

パターンを使用したWPFアプリケーションがあります。MVVMプロジェクトにウィンドウがあり、ウィンドウで使用しCustomControlています。ウィンドウで Start と Stop の 2 つのコマンドが必要CustomControlです。だから私はbool DependencyPropertyこのように使用します:

public static readonly DependencyProperty IsStartModeProperty = DependencyProperty.Register(
    "IsStartMode", typeof(bool), typeof(RadarView), new FrameworkPropertyMetadata(false, OnCurrentReadingChanged));

public bool IsStartMode {
    get { return (bool)GetValue(IsStartModeProperty); }
    set { SetValue(IsStartModeProperty, value); }
}

また、次のメソッドは、依存関係プロパティのコールバック デリゲートに使用されます。

public static void OnCurrentReadingChanged(DependencyObject doj, DependencyPropertyChangedEventArgs dp) {
    if (IsStartMode)
        Start();
    else
        Stop();
}

IsStartModeこれは静的ではないため、私の問題は up メソッドのプロパティから使用されています。ビルドエラーがあります。

私の解決策は正しいですか?私がすることは正しいですか?

4

1 に答える 1

4

You need to cast the first method argument to your Dependency Object class:

public static void OnCurrentReadingChanged(DependencyObject doj, DependencyPropertyChangedEventArgs dp) 
{ 
    var myObject = (RadarView)doj;

    if (myObject.IsStartMode) 
        myObject.Start(); 
    else 
        myObject.Stop(); 
} 

(As a side note, I would call the property IsRunning.)

于 2012-04-16T06:34:14.520 に答える