[英]Watch when property changes
我正在創建一個Web應用程序!
我有一個具有屬性的類:
public class DependencyHelper: INotifyPropertyChanged
{
private string _myString;
public virtual string MyString
{
get { return _myString; }
set
{
_myString = value;
OnPropertyChanged("MyString");
}
}
我想在主頁homepage.aspx.cs上有一個類似事件的事件,一旦類的屬性發生更改,該事件將做一些事情。 即將獲取MyString的值並將其顯示在警報中。
有人可以幫忙嗎,因為我想不起來怎么做。
謝謝
由於它是網頁,因此您必須向客戶端發出JS才能顯示消息框。 我會做這樣的事情:
private void OnPropertyChanged(string propertyName)
{
ScriptManager.RegisterClientScript(typeof(Page), "AlertScript" + System.Guid.NewGuid().ToString(), string.Format("alert('Property {0} has changed');"));
}
整個NewGuid混亂使得腳本名稱是唯一的,並且如果更改多個屬性,則將獲得多個框。
我不知道您是否要在Web解決方案中進行雙向綁定,這是絕對不可能的,或者可以使用彗星方法(http://en.wikipedia.org/wiki/Comet_(programming))實現。
也許您正在尋找在回發或回調之后執行此操作的方法,這可能只是將事件處理程序從控件或頁面添加到PropertyChanged事件,並添加一些腳本塊或引用一個腳本塊以顯示具有更改后的值的警報。
檢查如何創建ScriptControl http://byatool.com/ui/creating-script-controls-and-love/
和ASP.NET回調API: http : //msdn.microsoft.com/zh-cn/library/ms178208.aspx
您可以將彗星接近或僅進行單向綁定,因此,在第二種情況下(建議和推薦一種),在用戶交互之后,使用服務器回調,檢查是否有更改,然后返回客戶端,提醒此更改。
這類似於問題5216766 。 我建議您使用ObservableCollection
或AsyncBindingList
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.