Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF应用程序正确使用接口和公共类_C#_Wpf - Fatal编程技术网

C# WPF应用程序正确使用接口和公共类

C# WPF应用程序正确使用接口和公共类,c#,wpf,C#,Wpf,在我的WPF应用程序中,我有三个可执行文件 在每个可执行文件上,都有一个Mainwindow.xaml&Mainwindow.xaml.cs,每个都实现了驻留在公共项目中的公共接口IMainwindow。 因此,主窗口控件完全不同,名称空间明显不同 如何创建可用于这三个应用程序的部分公共Mainwindow.xaml类?为了创建部分类,名称空间必须相同。您可以创建一个基类,但不用于视图(xaml),它已经从UserControl继承,并且在C#中不支持多重继承 一个可能的选择是将公共视图包装到三

在我的WPF应用程序中,我有三个可执行文件

在每个可执行文件上,都有一个Mainwindow.xaml&Mainwindow.xaml.cs,每个都实现了驻留在公共项目中的公共接口IMainwindow。 因此,主窗口控件完全不同,名称空间明显不同


如何创建可用于这三个应用程序的部分公共Mainwindow.xaml类?

为了创建部分类,名称空间必须相同。您可以创建一个基类,但不用于视图(xaml),它已经从UserControl继承,并且在C#中不支持多重继承

一个可能的选择是将公共视图包装到三个MainWindow.xaml中,例如使用ContentControl。基本上,您可以创建一个UserControl,并在每次都重用它


但老实说,我不明白为什么在同一个解决方案中有3个可执行文件。看起来您试图开发一个通用框架,但在这种情况下,主窗口仍然会有所不同

我找到了解决问题的方法。可以派生基类,我们可以从wpf中的基类定义一个窗口 请看下面的表格

谢谢你的支持