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

问题描述

请教:WPF中 子类继承父类的INotifyPropertyChanged的问题

父类实现了INotifyPropertyChanged接口,子类数据改变时如何驱动父类的INotifyPropertyChanged?

  父类实现接口方法:
    public event PropertyChangedEventHandler PropertyChanged;
    /// <summary>
    /// 数据驱动
    /// </summary>
    /// <param name="propertyName"></param>
    public void ProChange(string propertyName)
    {
        if (PropertyChanged != null)   //子类调用时,父类一直为Null,子类如何才能实现通知?
        {
            this.PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
        }
    }

  子类这样调用:
   private string materialId;
    /// <summary>
    /// 物资编号
    /// </summary>
    public string 物资编号
    {
        get { return materialId; }
        set
        {
            materialId = value;
            ProChange("物资编号");
        }
    }

解决方案

检查发现,PropertyChanged委托只有在wpf界面更改数据时才不为Null。那么怎么才能在后台刷新数据时使PropertyChanged不为null?

时间: 2024-09-13 04:51:05

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

java中子类继承父类,程序运行顺序的深入分析_java

我们经常在项目中使用继承,但是往往不太明白,程序运行的顺序以及原理,尤其是使用上转型对象的时候,以及父类子类中都有static变量和方法时,不知道先运行谁.我也是写了一个例子.总结了一下. 复制代码 代码如下: 父类:public class TestStatic {     public static String name="china";     {       System.out.println("========方法体========");    }  

java+ 程序 子类继承父类 创建子类对象时构造方法中无显示调用父类构造方法

问题描述 java+ 程序 子类继承父类 创建子类对象时构造方法中无显示调用父类构造方法 创建子类对象时,Student s = new Student(""school""); 该构造方法中没有显示调用父类的构造方法,但还是编译成功了,该构造方法调用自身的构造函数,此构造函数中有调用父类的构造方法,执行成功的原因是什么 解决方案 不用显示调用,会自动执行父类的构造 解决方案二: 子类的构造方法中,如果没有显示调用父类的构造方法,会默认调用父类无参的构造方法.类似于

子类继承父类实现父类的代理方法

子类继承父类实现父类的代理方法 父类提供虚函数(OC中称为代理方法),子类继承后实现虚函数来实现特定的功能. 父类方法: NumberCount.h 与 NumberCount.m // // NumberCount.h // YXMWeather // // Created by XianMingYou on 15/2/18. // Copyright (c) 2015年 XianMingYou. All rights reserved. // #import <Foundation/Foun

PHP中子类重载父类的方法【parent::方法名】_php实例

在PHP中不能定义重名的函数,也包括不能再同一个类中定义重名的方法,所以也就没有方法重载.单在子类中可以定义和父类重名的方法,因为父类的方法已经在子类中存在,这样在子类中就可以把从父类中继承过来的方法重写. 子类中重载父类的方法就是在子类中覆盖从父类中继承过来的方法,父类中的方法被子类继承过来不就可以直接使用吗?为什么还要重载呢?因为有一些情况我们必须要覆盖的.例如,有一个"鸟"类,在这个类中定义了鸟的通用方法"飞翔".将"鸵鸟"类作为它的子类,

java语法-子类继承父类关于super关键词的问题

问题描述 子类继承父类关于super关键词的问题 子类继承父类关于super关键词的问题 super ( ) 和super eat ( )的区别 是不是super( )只是复写了父类的构造方法 super eat ( )只是复写了父类的eat方法 那么super.eat( )这种写法是错误的么 我记得有super.╳╳╳这种写法的 解决方案 你看到的应该是调用父类的内嵌类.

父类构造函数-java中子类重写父类构造方法问题

问题描述 java中子类重写父类构造方法问题 伪代码 class 子类 extends 父类 { super () } super可写可不写 反正不写也会执行是吧 解决方案 是的,如果调用无参的构造函数,可以不写,因为这是默认的. 解决方案二: 默认调用父类的无参构造方法,但是如果父类中没有无参构造方法就必须得写了,因为要传参数才能创建父类 解决方案三: super()默认是有的 解决方案四: 父类构造是不能被重写的 解决方案五: java中子类调用父类的构造方法Java中子类与父类的构造方法的

java中子类与父类中隐含的this引用的分析

/* 看一下下面的程序,看是否你的答案和运行的答案是否一致! */ class Parent{ public int x; public Parent p; public Parent(){} public Parent(int x){ this.x=x; p=this; } public void f(){ System.out.println("Parent::f()"); } public void g(){ System.out.println("Parent::g(

关于子类继承父类的问题。。

问题描述 有一个抽象MainServlet类,继承了HttpServlet.又写了一个普通类AdminServlet,继承了MainServlet.当请求指向AdminServlet时,又走了MainServlet中的post方法,很是不解啊...另外,在post方法中打印this,竟然是AdminServlet的hash值.为什么啊???这是代码,MainServlet:publicabstractclassMainServletextendsHttpServlet{@Overridepubl

Java中子类调用父类构造方法的问题分析_java

在Java中,子类的构造过程中,必须调用其父类的构造函数,是因为有继承关系存在时,子类要把父类的内容继承下来,通过什么手段做到的?    答案如下:     当你new一个子类对象的时候,必须首先要new一个父类的对像出来,这个父类对象位于子类对象的内部,所以说,子类对象比父类对象大,子类对象里面包含了一个父类的对象,这是内存中真实的情况.构造方法是new一个对象的时候,必须要调的方法,这是规定,要new父类对象出来,那么肯定要调用其构造方法,所以:     第一个规则:子类的构造过程中,必须调