WPF-如何在Usercontrol中使用我声明并填写MainWindow的List?

时间:2017-09-26 13:20:18

标签: c# wpf inheritance user-controls

您好我需要能够在Usercontrol中使用我的主窗口中的列表,我需要能够在各种Usercontrols中编辑和读取它。

主窗口:

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
    }

}

1 个答案:

答案 0 :(得分:1)

您需要以某种方式获得对MainWindow的引用。最简单的方法是使用Application.Current.Windows属性:

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

您还可以考虑制作termine static

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;
    //...
}