我有這樣定義爲一個依賴屬性的屬性:依賴項屬性和回調
public static readonly DependencyProperty HandleProperty =
DependencyProperty.Register("Handle", typeof(Int32?), typeof(SearchTextBox), new PropertyMetadata(HandleChangedHandler));
public Int32? Handle
{
get { return (Int32?)GetValue(HandleProperty); }
set
{
SetValue(HandleProperty, value);
}
}
public static void HandleChangedHandler(DependencyObject sender, DependencyPropertyChangedEventArgs e)
{
var self = (SearchTextBox) sender;
self.FindByHandle((Int32)e.NewValue);
}
有了這個代碼,該行從未執行
SetValue(HandleProperty, value);
,但Handle屬性被改變。
此屬性的值設置在哪裏?
爲什麼不簡單地使用屬性設置器來做到這一點?
'爲什麼不簡單地使用屬性「set」來做到這一點?' - 這部分不清楚。你能否詳細說明一下。 –
我想知道如果我們可以使用setter來代替這個回調會更簡單。 – Beetlejuice
您仍然可以在setter中編寫代碼。但是隻有當你從代碼中設置它時纔會調用它。根據XAML設計,XAML從不使用這些和這些。 –