WPF中,利用WVVM时,PropertyChanged一直是null

问题描述

publiceventPropertyChangedEventHandlerPropertyChanged;publicvoidOnPropertyChanged(stringpropertyName){if(PropertyChanged!=null){PropertyChanged(this,newPropertyChangedEventArgs(propertyName));}}其中PropertyChanged一直是null

解决方案

解决方案二:
你要先说明,为什么它应该有引用实例?
解决方案三:
你应该好好学学委托,因为这段代码已经有“自己生出自己”的逻辑问题了。PropertyChanged是一个委托对象的实例,在你这个类里也是事件,假设你的这个类是这样的:classUser{publiceventPropertyChangedEventHandlerPropertyChanged;privatestring_name;publicstringName{get{returnthis._name;}set{this._name=value;if(PropertyChanged!=null)PropertyChanged.Invoke(this,newPropertyChangedEventArgs("Name"));}}}而外部调用你的类时,应该是这样的:Useruser=newUser();user.PropertyChanged+=newPropertyChangedEventHandler(user_PropertyChanged);privatevoiduser_PropertyChanged(objectsender,PropertyChangedEventArgse){MessageBox.Show("user的"+e.PropertyName+"属性被更改");}当user的Name属性发生变更:user.Name="abc";这时就会以这样的方式实现委托的过程1、调用Name.set过程2、因为user.PropertyChanged已经指定了委托实现函数(user_PropertyChanged),所以这个函数会因为PropertyChanged.Invoke而触发3、弹出对话框“user的Name属性被更改”PropertyChanged在整个过程中的作用,就是让User以外的地方得以知道User的某个属性发生了变化,从而做出处理,它相当于“通知”的作用现在来看你所写的这段代码,你奇怪于PropertyChanged一直为null,这很正常,因为你没有使用user.PropertyChanged+=new……这样的实例化语句来指定委托如何实现,其次,OnPropertyChanged放在类自身中,然后又调用PropertyChanged(),幸亏你的PropertyChanged是null,否则就堆栈溢出了,这是假设PropertyChanged不为null的情况:PropertyChanged触发→OnPropertyChanged()→再次调用PropertyChanged→OnPropertyChanged()→再次调用PropertyChanged
解决方案四:
顺便再说一句,没有WVVM,而是MVVM
解决方案五:
@为轮子而生对不住,写错了,是MVVM,外部类实现了INotifyPropertyChanged,所以不用自己去写user.PropertyChanged+=new……这样的实例化语句来指定委托如何实现
解决方案六:
要有一个属性的实例,第二是要有属性的外部变化,这样才能看到你想要的效果。你可以选择一个属性,手动赋值,看一下效果,就知道是什么意思了。
解决方案七:
我有点搞不懂你想干什么了,能否说一下,你写OnPropertyChanged这个函数是想干什么
解决方案八:
@为轮子而生我想实现一种提醒,当我的一个属性的值变更时,前台能够自动获取变更的值。我自己做demo的时候,有的时候属性值自动变更,前台能够自动获取,即PropertyChanged不为空,但有的时候PropertyChanged为空,前台获取不到这个值的变更
解决方案九:
前台设置的是DataGrid中某一列的只读属性,当属性值为true的时候,DataGrid每一行的这一列的只读属性为true,不过当属性值变更时PropertyChanged为空;如果把属性绑定在一个textbox的只读属性时,PropertyChanged不为空;是不是PropertyChanged不能在DataGrid中进行一对多的绑定?
解决方案十:
怎么绑定的,贴代码上来

时间: 2024-10-27 12:21:58

WPF中,利用WVVM时,PropertyChanged一直是null的相关文章

wpf c#-请教:WPF中 子类继承父类的INotifyPropertyChanged的问题

问题描述 请教:WPF中 子类继承父类的INotifyPropertyChanged的问题 父类实现了INotifyPropertyChanged接口,子类数据改变时如何驱动父类的INotifyPropertyChanged? 父类实现接口方法: public event PropertyChangedEventHandler PropertyChanged; /// <summary> /// 数据驱动 /// </summary> /// <param name=&quo

WPF中xaml与xml交换数据时设计器中有数据,但运行后没有,为什么额?

问题描述 WPF中xaml与xml交换数据时设计器中有数据,但运行后没有,为什么额? 4C 在项目中创建了一个新的窗口叫window1然后在母窗口的cs文件中设置button按钮点击事件: window1 mywin = new window1(); mywin.show(); 在window1的xaml中绑定了当前目录的一个xml文件,设计器上可以看到绑定之后的数据,但是一旦运行之后,点击button按钮,出现window1的界面就会没有那些绑定的数据,敢问这是怎么回事呢? 谢谢: 其实就是设

在opencv中利用findContours进行轮廓检测,程序运行结束时为什么会报中断错误,求解?

问题描述 在opencv中利用findContours进行轮廓检测,程序运行结束时为什么会报中断错误,求解? 代码如下: #include #include #include #include #include #include using namespace cv; using namespace std; //一.将源图片转成单通道的灰阶图片 Mat changeSourceImg(Mat img){ Mat great(img.size(), CV_8U); cvtColor(img, g

在vs2010中利用mfc写一个连连看游戏时各种资源窗口啥的等都报“未声明的标识符”问题

问题描述 在vs2010中利用mfc写一个连连看游戏时各种资源窗口啥的等都报"未声明的标识符"问题 10C 写这个连连看游戏刚开始导入各种资源文件改好ID后运行正常,但通过进一步的编程后不知道为什么开始报各种"未声明的标识符"bug(可能中途改了一些什么设置.....)现项目最近运行的log文件如下: 生成启动时间为 2016/5/26 17:37:08. 1>项目"C:UsersAliezdocumentsvisual studio 2010Pro

Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题的解决方法_Android

在Android中,很多人会用如下的方法判断当前网络是否可用: /** * 获取当前网络状态(是否可用) */ public static boolean isNetworkAvailable() { boolean isAalable = false; ConnectivityManager connManager = (ConnectivityManager) BaseApplication.getApplication().getSystemService(Context.CONNECTI

WPF中listbox点击时怎么让整个背景不变色?

问题描述 WPF中listbox点击时,整个背景变成蓝色,怎么让整个背景不变色,只是让单个模块获取焦点? 解决方案 解决方案二:我也碰到了同样问题.救答案.解决方案三:模板应该能解决你的问题解决方案四:重写模板解决方案五:<Windowxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml&

WPF中MVVM模式原理分析与实践[转]

1, 前提 可以说MVVM是专为WPF打造的模式, 也可以说MVVM仅仅是MVC的一个变种, 但无论如何, 就实践而言, 如果你或你的团队没有使用"Binding"的习惯, 那么研究MVVM就没有多大意义. 另外,个人觉得, 使用Command以及打造一种合理的简化的方式去使用Command也与使用Binding一样重要. 2, 诞生 为了解决现实世界中的问题,我们需要将现实世界中的事物加以抽象, 然后得到了Domain Object, 无论贫血的还是富血的, 我们都可以简单地把他们归

.NET框架WPF中加载高质量大图慢的性能优化

最近的项目中,遇到一个关于WPF中同时加载多张图片时,内存占用非常高的问题. 问题背景: 在一个ListView中同时加载多张图片,注意:我们需要加载的图片分辨率非常高. 代码: XAML: <Grid>     <Grid.RowDefinitions>         <RowDefinition Height="Auto"/>         <RowDefinition Height="*"/>     <

在WPF中使用AForge.net控制摄像头拍照

原文:在WPF中使用AForge.net控制摄像头拍照 利用AForge.net控制摄像头拍照最方便的方法就是利用PictureBox显示摄像头画面,但在WPF中不能直接使用PictureBox.必须通过<WindowsFormsHost></WindowsFormsHost>来提供交换功能.其解决方法如下: 1.按照常规方法新建一个WPF应用程序: 2.添加引用 WindowsFormsIntegration  (与WinForm交互的支持) System.Windows.For