簡體   English   中英

在設計模式C#WPF中檢查屬性更改的正確方法?

[英]Correct way to check for property change in design mode C# WPF?

好的,所以我試圖運行一些代碼,以在用戶在設計模式下更改自定義控件的依賴項屬性值時修改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;

但是它們似乎都存在自己的問題,因為它們要么觸發錯誤,要么根本不起作用。

那么,有誰知道在設計模式下偵聽依賴項屬性更改的正確方法是什么,如果可以,您可以舉個例子嗎?

處理DependencyProperty更改的正確方法是:

聲明DependencyProperty:

public static DependencyProperty MyXProperty;

創建公共獲取/設置屬性:

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            
}

如果仍然找不到解決方案,請提供更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM