2
我有一個帶有兩個屬性的Silverlight自定義控件;文本和ID。根據下面的代碼,我已經爲這些創建了DependencyProperties。在Silverlight中同步填充自定義控件的DependencyProperties
public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(LookupControl), new PropertyMetadata(NotifyPropertyChanged));
public static readonly DependencyProperty IdProperty = DependencyProperty.Register("Id", typeof(Guid?), typeof(LookupControl), new PropertyMetadata(NotifyPropertyChanged));
public event PropertyChangedEventHandler PropertyChanged;
public static void NotifyPropertyChanged(object sender, DependencyPropertyChangedEventArgs args)
{
var control = sender as LookupControl;
if (control != null && control.PropertyChanged != null)
{
control.PropertyChanged(control, new PropertyChangedEventArgs("Text"));
}
}
public Guid? Id
{
get { return (Guid?)GetValue(IdProperty); }
set { SetValue(IdProperty, value); }
}
public string Text
{
get { return (string)GetValue(TextProperty); }
set { SetValue(TextProperty, value); }
}
在控制方法中,首先填充Id,然後填充Text。我的問題是,當我綁定到此控件上的文本和Id時,我希望他們的數據同步填充,以便PropertyChanged事件觸發任何屬性時,他們都有更新的數據。
在這個時候,我發現當Id已經改變,執行了一些處理,並且如果需要,我將Text設置爲一個新值。但是,一旦這個Id的OnChange已經完成,那麼控制方法會繼續並在我已經將其更改回其他內容之後填充文本。