【问题标题】:How to pass values from one class to another class using wpf?如何使用 wpf 将值从一个类传递到另一个类?
【发布时间】:2016-07-23 16:40:20
【问题描述】:

我想将值从一个类文件传递到另一个类。

例如:

第一步:

Class1.cs

public class Class1
    {
        public string LogedInPerson { get; set; }

        public string Name
        {
            get { return this.LogedInPerson; }
            set { this.LogedInPerson = value; }
        }
    }

第二步:

已通过以下方法分配值:

test.xaml.cs

public void assignValue()
{
     Class1 obj = new Class1();
     obj.LogedInPerson = "test123";
}

第三步:

我想从 Class2.cs 中获取“test123”值。

例如:

public void test()
        {
            string selected_dept = ?? //How to get "test123" from here.
        }

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    您可以拥有包含公共变量的变量类。在变量类中定义class1 的实例。

    public static class1 myclass=new class1();
    

    在test.xml.cs中设置值

    public void assignValue()
    {
     myclass.LogedInPerson = "test123";
    }
    

    在 class2.cs 中

    public void test()
        {
            string selected_dept = myclass.LogedInPerson;
        }
    

    【讨论】:

      【解决方案2】:

      assignValue()方法之外初始化Class1

      Class1 obj = new Class1();
      
      public void assignValue()
      {
      
           obj.LogedInPerson = "test123";
      }
      public string returnValue()
      {
      
        return obj.LogedInPerson;
      }
      

      如果你的第二个类名 test.xaml 则这样称呼它,但我认为你不能使用类名 test.xaml 所以请使用一个好听的名称,例如:Class2

      public void test()
      {
          test.xaml test = new test.xaml();
          test.assignValue();
          string selected_dept = test.returnValue(); //How to get "test123" from here.
      }
      

      【讨论】:

        【解决方案3】:

        我相信这个问题更多的是关于基本的面向对象编程原则的主题,而不是关于 WPF 特定功能的主题。因此,我将为您提供一个非 WPF 特定的答案,因为它可以让我以最直接的方式解决您的问题。

        在 OOP 中,方法可以将结果返回给调用者。所以,例如,

        public string GetReturnObject(){
        
             return "This is a return object";
        
        }
        

        您可以创建一个新对象并将其传回给调用者,

        public void Test(){
        
             string data = GetReturnObject(); 
        
        }
        

        现在data 将被分配从Test() 调用的方法返回的对象。因此,如果您通过添加返回类型并将实例化的 Class1 对象传递回调用者来修改您的 AssignValue 方法,您将得到您需要的答案

        public Class1 assignValue()
        {
             Class1 obj = new Class1();
             obj.LogedInPerson = "test123";
             return obj;
        }
        

        希望对您有所帮助。

        【讨论】:

          猜你喜欢
          • 2013-03-16
          • 1970-01-01
          • 2011-08-26
          • 2017-10-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多