在WPF中将应用程序作为参数传递
我有一个结合了几个项目的解决方案。 这是我的App.xaml.cs在WPF中将应用程序作为参数传递,wpf,casting,Wpf,Casting,我有一个结合了几个项目的解决方案。 这是我的App.xaml.cs public partial class App : Application { private SiteManager _siteManager = new SiteManager(); public SiteManager SiteManager { get { return _siteManager; } set { _siteManager = value; }
public partial class App : Application
{
private SiteManager _siteManager = new SiteManager();
public SiteManager SiteManager
{
get { return _siteManager; }
set { _siteManager = value; }
}
}
在运行期间,我调用同一解决方案中的另一个项目
SiteDll.MainWindow siteManagerDialog = new SiteDll.MainWindow();
siteManagerDialog.Show();
但我不知道如何将App.xaml.cs中的所有变量传递给SiteDll.main窗口siteManagerDialog
我试过:
SiteDll.MainWindow siteManagerDialog = new SiteDll.MainWindow((App)Application.Current);
siteManagerDialog.Show();
并在SiteDll.MainWindow构造函数中强制转换它:
public MainWindow(object me)
{
Application app = ((App)me);
InitializeComponent();
}
但我得到了铸造错误。。。
正确的方法是什么?您正在将应用程序1.应用程序类型强制转换为不同类型的应用程序2.应用程序。这就是为什么会出现无效的强制转换异常 您可以做的是,您可以将公共变量放在单独的程序集中,并从两个应用程序引用此程序集 编辑 我还建议您添加一个“WPF用户控件库”,然后在使用来自其他程序集的WPF窗口/页面/用户控件时引用它,以防止此类混淆