在设计模式C#WPF中检查属性更改的正确方法?

时间:2014-09-02 14:31:06

标签: c# wpf properties dependency-properties inotifypropertychanged

好的,所以当用户在设计模式下更改自定义控件的依赖项属性值时,我正在尝试运行一些修改UI的代码;但仅限于设计模式。

我尝试过这些方法:

1.
public static DependencyProperty x = ...Register(..., new PropertyMetadata(null, changeMethod));

2.
set { SetValue(XProp, value); changeMethod(value); }

3.
var observable = x as INotifyPropertyChanged;
observable.PropertyChanged += ObservablePropertyChanged;

但他们似乎都有自己的问题,因为他们要么触发错误,要么根本不工作。

所以有人知道在设计模式中听取依赖属性更改的正确方法是什么,如果是这样,你能给出一个例子吗?

1 个答案:

答案 0 :(得分:2)

处理DependencyProperty更改的正确方法是:

。声明DependencyProperty:

public static DependencyProperty MyXProperty;

。创建public get / set属性:

public string MyX
{
    get { return (string)GetValue(MyXProperty); } //Supposing that the property type is string
    set { SetValue(MyXProperty, value); }
}

。在静态构造函数中注册DependencyProperty:

static MyClass()
{
    MyXProperty= DependencyProperty.Register("MyX", typeof(string), typeof(MyClass), new FrameworkPropertyMetadata("", OnMyXPropertyChanged));
}

。声明属性更改方法:

private static void OnMyXPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) 
{
    MyClass thisClass = d as MyClass ;
    //Do Something            
}

如果您仍无法找到解决方案,请提供更多信息。