簡體   English   中英

使用WPF綁定在深度嵌套的屬性發生更改時獲取回調

[英]Get a callback when a deeply nested property changes, with a WPF binding

我在說什么

在WPF表單上,我可以為深度嵌套的對象創建一個簡單的WPF綁定:

<TextBox Name="TextBox1" Text="{Binding Path=Very/Deeply/Nested/Object}"></TextBox>

當層次結構中的任何屬性更改時,TextBox1將自動更新。 因此,例如,如果對象“非常”的屬性“深層”更改,則WPF將取消訂閱上一個項目,並訂閱新的層次結構。 最終,Text屬性將被更新。

我想做的事

在C#端,當“對象”更改時,我需要獲取回調。 但是,我不需要在任何WPF控件中顯示 Object。 另外,我不想手動訂閱/取消訂閱整個層次結構 ,如何在C#中使用WPF的訂閱機制從深度嵌套的對象屬性中獲取回調?

我發現一個不好的解決方案

我可以使TextBox1不可見(因為我實際上不需要顯示該信息),並訂閱它的TextChanged事件。 這很簡單,可能會起作用,但確實看起來像是一種不好的方法...

看這個問題的另一種方式

可以在控件屬性以外的其他對象上使用綁定機制嗎? IDK,我可以創建某種非靜態且不斷訂閱的資源嗎? 該資源將使用指定的綁定,我可以訂閱該資源的單個“更改”事件。

歡迎任何幫助!

如果您的“嵌套”已實現INotifyPropertyChanged,則可以在viewmodel中訂閱其PropertyChanged事件。 包括對象在內的任何財產發生變更時,您都會收到通知

暫無
暫無

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

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