我有一個具有一些屬性的類A, 在類B中,我創建了一個對象A並將它創建爲DependencyProperty
併爲其註冊propertyChangedCallBack
。但是當它更新時不是在重新創建對象時觸發。 即使當A的子屬性被改變而不是整個對象時,我怎樣才能解決它呢?當屬性已更新時,調用屬性更改回調
1
A
回答
3
沒有內置的「深度鏈接」屬性更改通知。你必須自己做。
你class A
可能包含另一個事件Changed
(只是一個例子,只要你喜歡的名字吧),這是上調,每次它的一個成員改變
public class A
{
private string name;
public string Name
{
get { return this.name; }
set
{
if (value != this.name)
{
this.name = value;
this.RaiseChanged();
}
}
}
// ... more properties here ...
public event EventHandler Changed;
private void RaiseChanged()
{
this.Changed?.Invoke(this, EventArgs.Empty);
}
}
public class B
{
public A PropertyA { get; set; }
}
你class B
則必須訂閱PropertyA
小號Changed
事件,並通知外部世界有關更改爲PropertyA
。請記得正確處理對PropertyA
的更改。
僅用於通知目的,不需要(並且無需額外使用)使PropertyA
成爲DependencyProperty,因此您可以堅持使用INotyfyPropertyChanged
。
希望這會有所幫助。
+0
我想要OnPropertyAChange事件觸發。 public static readonly DependencyProperty PropertyAProperty = DependencyProperty.Register(「PropertyA」,typeof(A),typeof(B),new PropertyMetadata(null,OnPropertyAChange)); – Maryam
相關問題
- 1. 更新屬性只有當屬性已更改
- 2. 更改子屬性時回調DependencyProperty
- 3. 更新依賴屬性當子屬性已更新
- 4. 當一個項目的屬性更改值時,調用BindingList已更改事件
- 5. 何時調用屬性更改
- 6. DOM屬性更改調試
- 7. 更改ActiveRecord屬性的回調?
- 8. 在回調中更新屬性Rails 3
- 9. 更新類屬性通過回調
- 10. 當SelectedIndex屬性更改時,ListBox的SelectedItem屬性發生更改?
- 11. 如何在屬性值更改時更新從屬屬性?
- 12. 更新屬性before_save回調不保存額外的屬性
- 13. 從調用屬性更改回調的方法設置依賴項屬性
- 14. FactoryGirl:在調用FactoryGirl.create後更改屬性
- 15. 另一個屬性更改時更新幾個屬性?
- 16. 更新孩子屬性更改時複合屬性的綁定
- 17. Notes屬性語法已更改? - 通過API調用的Notes屬性失敗
- 18. textblock在屬性更改時未更新
- 19. 屬性更改時更新標誌
- 20. 更新屬性安全性的Rails:使用回調或attr_accessible?
- 21. Rails:無需調用回調即可更新模型屬性
- 22. 回形針:在每次更新時調用copy_to_local_file(無關屬性)
- 23. 當另一個屬性爲True時使用css更改屬性
- 24. 當您更改innerHTML屬性
- 25. 當使用Jquery更改值時,KnockoutJS屬性不會更新
- 26. 當屬性更改時,選擇性地/更新地更新綁定到相同模型屬性的控件
- 27. Mysql:更新屬性當且僅當其他屬性發生更改
- 28. 更改回顯表屬性
- 29. 調試依賴屬性更改wpf?
- 30. 更改屬性
財產的財產不beeing propertyChangedCallBack處理。你的屬性是一個指向A類對象的指針,它的屬性發生變化而不會改變B對其A對象的引用 – swe