簡體   English   中英

如何使數據綁定控件刷新通過反射更改的屬性值?

[英]How can I make a databound control refresh a property value that was changed by reflection?

我使用以下代碼將屬性綁定到文本框控件(Windows窗體程序):

textBox.DataBindings.Add("Text", myObject, myPropertyName, false, DataSourceUpdateMode.OnPropertyChanged);

在程序的后續部分,我將使用反射代碼通過反射來更新屬性的值。

PropertyInfo propertyInfo = myObject.GetType().GetProperty(myPropertyName);
propertyInfo.SetValue(myObject, myNewValue, null);

該屬性的值在對象被更新。 當代碼返回到窗體時,我可以在調試器中看到它。 但是,文本框不會顯示新值。

如果我清除文本框上的數據綁定,然后重新添加它,則它會顯示新值。

通過反射設置屬性值后,如何使數據綁定文本框自動顯示新值?

如果不使用反射設置綁定,綁定是否起作用? 如果仍然無法正常工作,則可能需要讓您的對象實現INotifyPropertyChanged,然后在設置程序中引發OnPropertyChanged事件。 我假設Windows窗體是相同或相似的,這就是它在WPF中的工作方式。 基本上,綁定需要一種方法來知道屬性已更改,這是通過處理該事件來實現的。

暫無
暫無

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

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