none
Silverlight中如何共享变量或方法? RRS feed

  • 问题

  • 比如我在1.xaml.vb中的变量,怎么在2.xaml.vb中获取?  好像在1.xaml.vb,  public变量似乎不行,同理 2中调用1中执行事件也不行好像,有什么办法吗?

    2010年6月6日 5:17

答案

  • 最简单的方法(但也许不是最好的,您的代码需要重构)是另外创建一个static的类,用于存储值:

    public static class Store
    {
      public static int A { get; set; }
    }
    这样你在一个类中可以用Store.A = 200;来设置值,而在另一边可以用Store.A来获取值。


    Tech Blog: http://gildor.cnblogs.com
    2010年6月9日 4:57

全部回复

  • 首先要得到1或者2中定义的类的引用,通过参数传递或者单件模式,然后在对象实例上面才可以使用其public成员或调用方法。或者在一些情况下也可以使用静态成员,通过类名直接操作成员。

    总之……个人建议,请移步VB语言讨论区吧,那里可以得到更详尽的回答。


    Tech Blog: http://gildor.cnblogs.com
    2010年6月6日 6:31
  • 似乎不行
    2010年6月8日 7:22
  • 请把具体问题贴上来看看。
    Tech Blog: http://gildor.cnblogs.com
    2010年6月8日 14:27
  • 代码太长..意思是我在1.xaml.cs 中

    public partial class class1 : UserControl
    {
    public int a = 100;
    }

    然后再2.xaml.cs 中执行对class1中的a赋值后,(直接使用class1.a无法调用到a...)

    class1 class1 = new class1();
    class1.a=200;
    

    回到1.xaml.cs中使用

    system.browser.window.alert(a);

    的结果还是100...

    现在只能用window.invoke方法调用js中一个过程来设置读取变量,有点像全局变量的意思...

    有没有别的办法?

    2010年6月8日 16:46
  • 最简单的方法(但也许不是最好的,您的代码需要重构)是另外创建一个static的类,用于存储值:

    public static class Store
    {
      public static int A { get; set; }
    }
    这样你在一个类中可以用Store.A = 200;来设置值,而在另一边可以用Store.A来获取值。


    Tech Blog: http://gildor.cnblogs.com
    2010年6月9日 4:57