1

我有一个WPF使用MVVM模式的应用程序。我的项目中有一个窗口,并CustomControl在我的窗口中使用了一个。我的 Window 中需要两个命令来启动和停止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();
}

我的问题是在 up 方法中使用IsStartMode属性,因为这不是静态的。它有一个构建错误。

是正确的我的解决方案吗?如果是正确的,我该怎么做?

4

1 回答 1

4

您需要将第一个方法参数转换为 Dependency Object 类:

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

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

(作为旁注,我会调用该属性IsRunning。)

于 2012-04-16T06:34:14.520 回答