修改另一个类的依赖属性

时间:2013-10-01 17:24:05

标签: c# wpf data-binding dependency-properties

我目前有以下内容:

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的值。

2 个答案:

答案 0 :(得分:0)

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

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

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

Application.Current.MainWindow.IsCopyEnabled = !Application.Current.MainWindow.IsCopyEnabled;

答案 1 :(得分:0)

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

Button button = new Button();
button.SetValue(Button.IsEnabledProperty, !(bool)button.GetValue(Button.IsEnabledProperty));