2017-08-27 21 views
0

我想從另一個部分類訪問字符串列表。 試圖從公共部分類主窗口訪問列表:窗口訪問另一個部分類的字符串列表

`

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

`

要叫我用下面的代碼清單

namespace GymCheckList 
{ 
    public partial class ChooseExercises : Window 
    { 

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

但是,當我調試它,我得到「計數= 0」爲calledList ..爲什麼它可能是?

+1

好的。我會咬:這是C的標籤,因爲...? – WhozCraig

+1

因爲這是計數。你還沒有分配任何值 – AntLaC

+0

@AntLaC我已經爲它分配了一些值,當我調試它時,它在MainWindow類中看到它們... – Alex

回答

1

每次str被稱爲它創造的MainWindow

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

該實例不具有在一個主窗口這是開在啓動時(另一個實例)輸入任何數據

一個新的實例

嘗試訪問原始實例通過Application.Current.MainWindow財產

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

這是一個快速和骯髒的修復程序。首選方法是正確設置每個視圖的共享數據查看模型

+0

謝謝!這對我有效! – Alex

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; 
      } 
     } 
相關問題