2017-09-26 77 views
1

嗨,我需要能夠在UserControl中使用我的主窗口中的列表,我需要能夠在各種用戶控件中編輯和讀取它。WPF-我如何使用我聲明並在UserControl中填充我的MainWindow的列表?

主窗口:

public partial class MainWindow : Window 
{ 
    public List<Termin> termine = new List<Termin>(); 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
} 

用戶控件:

public partial class KalenderAnsicht : UserControl 
{ 
    public KalenderAnsicht() 
    { 
     InitializeComponent(); 
    } 

    private void SomeMethod() 
    { 
     //i need to be able to use the list here 
    } 

} 
+0

將列表作爲參數傳遞給方法。 – Kevin

回答

1

你需要去的MainWindow這樣或那樣的參考。要做到這一點,最簡單的方法可能是使用Application.Current.Windows屬性:

private void SomeMethod() 
{ 
    var mw = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault(); 
    List<Termin> termine = mw.termine; 
    //... 
} 

你也可以考慮把terminestatic

public partial class MainWindow : Window 
{ 
    public static List<Termin> termine = new List<Termin>(); 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
} 

...直接訪問它,而不到的實例的引用MainWindow

private void SomeMethod() 
{ 
    List<Termin> termine = MainWindow.termine; 
    //... 
} 
+0

感謝您的回答。我收到一個錯誤無法將方法組分配給隱式類型變量。我不能使它成爲靜態的,因爲我需要能夠從另一個用戶控件編輯它。 – Samuel

+0

你仍然可以把它變成靜態的......你從哪裏得到錯誤? – mm8

+0

我在這裏得到的錯誤 var mw = Application.Current.Windows.OfType ().FirstOrDefault; 我仍然可以添加新的條目從usercontrol列表,如果我使它靜態? – Samuel

相關問題