多窗口WPF应用程序:发送值和共享数据
本文关键字:共享 数据 窗口 WPF 应用程序 | 更新日期: 2023-09-27 18:22:23
我是WPF的新手,目前已经设置了一个1窗口的WPF。然而,现在我需要一个新的窗口来共享Dictionary clientData;当我单击主窗口中ListBox中的条目时,我需要将entryId传递到可以访问clientData[entryId]的新窗口。
我过去一直制作单窗口应用程序,所以我对这方面还是个新手。
这是怎么做到的?
通常,在两个窗口之间有两种简单的通信方式。
可能性1:您可以在两个窗口中创建public
和static
变量,如下所示:
public static int Property1 { get; set; }
可能性2:创建一个参数化方法来显示子窗口,并将变量返回为public
,如下所示:
public int Property2 { get; set; }
public void ShowThis(int parameter)//Gets called by your MainWindow
{
this.Property2 = parameter;
this.Show();
}
编辑
基于您的问题:
您的子窗口:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
public void ShowThis<T>(IEnumerable<T> data)
{
listBox.Items.Clear();
foreach(var item in data)
{
listBox.Items.Add(item);
}
this.Show();
}
}
你的主窗口会是这样的:
public partial class MainWindow : Window
{
Window1 window1;//your subwindow
public MainWindow()
{
InitializeComponent();
window1 = new Window1();
}
private void buttonShow_Click(object sender, RoutedEventArgs e)//button to show subwindow
{
int[] testData = new int[5] { 1, 3, 5, 7, 9 };
window1.ShowThis(testData);
}
}