我正在尝试从另一个部分类中访问字符串列表。 尝试从公共部分类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”..为什么会这样?
答案 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;
}
}