繁体   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