0

我目前有以下内容:

public static readonly DependencyProperty IsCopyEnabledProperty =
    DependencyProperty.Register(
        "IsCopyEnabled",
        typeof(bool),
        typeof(MainWindow));

    public bool IsCopyEnabled
    {
        get { return (bool)GetValue(IsCopyEnabledProperty); }
        set { SetValue(IsCopyEnabledProperty, value); }
    }

我将此绑定到我创建的按钮,以确定是否应该启用或禁用它。我通常调用以下命令来更改 IsCopyEnabled 中声明的类的值:

IsCopyEnabled = !IsCopyEnabled;

我想知道如何在另一个类中更改 IsCopyEnabled 的值(虽然相同的命名空间)。

4

2 回答 2

0

SetValue 是一个公共方法。如果您有对目标对象的引用,则可以从另一个类中调用它:

Button button = new Button();
button.SetValue(Button.IsEnabledProperty, !(bool)button.GetValue(Button.IsEnabledProperty));
于 2013-10-01T17:36:25.043 回答
0

就像每个类实例的任何其他类属性一样。

MainWindow window = new MainWindow();
window.IsCopyEnabled = !window.IsCopyEnabled;

因为您已经为 MainWindow 注册了 DP,所以您也可以这样做

Application.Current.MainWindow.IsCopyEnabled = !Application.Current.MainWindow.IsCopyEnabled;
于 2013-10-01T17:30:24.037 回答