簡體   English   中英

觀看屬性更改

[英]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 我建議您使用ObservableCollectionAsyncBindingList

暫無
暫無

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

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