none
有关不同项目上如何处理委托、事件、反射的问题,请进来看看 RRS feed

  • 问题

  • 如图所示:  一个解决方案有两个项目

    MainPage已经对ControlLib进行了引用。
    CustomControl类中有一已经实现通知的sting型属性:IsTrue, 可以根据这个值来改变页面的状态。
    现在我有一个需求,通过MainPage中按钮的点击事件   button.Click+=(ss,ee)=>{ //此处要传递“false”给IsTrue };    
    来改变ControlLib中的IsTrue的值。

    重要说明:在程序运行的时候CustomControl类就已经先被实例化了。之后再去点的这个按钮。

    希望尽量不要用全局变量,如果能实现,也可以。
    这里如果用委托、事件感觉不是很好操作,可能得重新创建对象
    或许这里还要用到反射。

    求指导。



    • 已编辑 Yvan Wang 2015年2月3日 8:04 更换完整图片
    2015年2月3日 7:48

全部回复

  • 反射可以:

    using System.Reflection;
    
    MyObject obj = new MyObject();
    
    PropertyInfo prop = obj.GetType().GetProperty("Name", BindingFlags.Public | BindingFlags.Instance);
    if(null != prop && prop.CanWrite)
    {
        prop.SetValue(obj, "MyName", null);
    }
    2015年2月4日 6:54
  • 请问具体怎么操作?  反射这个是会的。但是除了此实例化后,还要在哪对B的

    实例进行注册事件处理,才能让B接受A的数据?

    也就是说:

    主程序中  有一个类A已经进行了反射处理  创建了CustomControl类    

    之后在主页面中有一个页面B   如何传值到CustomControl中去?

    我的想法: 在页面B中   有一个事件event eventHandler AEven不知道

    不知道在哪个地方获取到页面B的实例,之后注册事件。然后对类A进行处理。

    太绕了。。崩溃了

    2015年2月4日 8:00