访问另一个分部类的字符串列表

时间:2017-08-27 21:04:25

标签: c# wpf

我正在尝试从另一个部分类中访问字符串列表。 尝试从公共部分类MainWindow:Window

访问列表

`

namespace GymCheckList
{ 
    public partial class ChooseExercises :  Window
    {

    public List<string> str()
        {
            MainWindow myClass = new MainWindow();
            List<string> calledList = myClass.Data1;
            return calledList;
        }

`

要调用列表,请使用以下代码

{{1}}

但是当我调试它时,我得到了callList的“Count = 0”..为什么会这样?

2 个答案:

答案 0 :(得分:1)

每次调用str时,都会创建MainWindow

的新实例
public List<string> str()
{
    MainWindow myClass = new MainWindow();
    List<string> calledList = myClass.Data1;
    return calledList;
}

该实例没有在启动时打开的MainWindow中输入的任何数据(另一个实例)

尝试通过Application.Current.MainWindow属性

访问原始实例
public List<string> str()
{
    MainWindow myClass = (MainWindow)Application.Current.MainWindow;
    return myClass.Data1;
}

这是一个快速而肮脏的修复方法。首选方法是使用每个视图的共享数据正确设置视图模型

答案 1 :(得分:0)

抱歉,我第一次没有看到这个。

private List<string> data1 = new List<string>(); 您将始终使用此行new List<string>()

namespace GymCheckList
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private List<string> data1;
        public List<string> Data1
        {
            get
            {
                if(data! == null) data! = new List<string>();
                return data1;
            }
        }