Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/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# XAML窗口上的抽象类_C#_Wpf_Class_Xaml_Abstract - Fatal编程技术网

C# XAML窗口上的抽象类

C# XAML窗口上的抽象类,c#,wpf,class,xaml,abstract,C#,Wpf,Class,Xaml,Abstract,是否有机会将抽象类添加到wpf窗口 以下是我目前的代码: 我的窗口: public partial class VORLAGE : Window, IWindow, IDisposable { //SOME CODE } IWindow.cs: public interface IWindow { void Open(MachineOrder machineOrder, Boolean showWindow); void

是否有机会将抽象类添加到wpf窗口

以下是我目前的代码:

我的窗口:

 public partial class VORLAGE : Window, IWindow, IDisposable
    {
       //SOME CODE
    }
IWindow.cs:

public interface IWindow
    {
        void Open(MachineOrder machineOrder, Boolean showWindow);
        void OpenEditMode(MachineOrder machineOrder);
        void Close();
        void OpenManualOrder();
    }
有很多基于“VORLAGE”窗口的窗口,我想添加一个抽象类来定义一些基本功能。
有没有办法做到这一点?

您应该能够将VORLAGE类抽象化,然后将共享其功能的其他窗口作为子类。例如:

// VORLAGE class containing the shared base code
public abstract partial class VORLAGE : Window, IWindow, IDisposable
{
    // Shared base code
}

// Your multiple window classes which utilize the same base code
public partial class MyVorlageWindowA : VORLAGE
{
    // Specific concrete code
}

public partial class MyVorlageWindowB : VORLAGE
{
    // Different, specific concrete code
}

您应该能够将VORLAGE类抽象化,然后将共享其功能的其他窗口作为子类。例如:

// VORLAGE class containing the shared base code
public abstract partial class VORLAGE : Window, IWindow, IDisposable
{
    // Shared base code
}

// Your multiple window classes which utilize the same base code
public partial class MyVorlageWindowA : VORLAGE
{
    // Specific concrete code
}

public partial class MyVorlageWindowB : VORLAGE
{
    // Different, specific concrete code
}
  • 您必须从
    窗口继承,而不必从抽象继承所需的功能。您可以将这些功能作为该窗口的子组件,也可以使用IoC
  • 您可以使
    MyBaseWindow
    Window、IWindow、
    继承,也可以从该
    MyBaseWindow
    继承其他窗口
  • 您必须从
    窗口继承,而不必从抽象继承所需的功能。您可以将这些功能作为该窗口的子组件,也可以使用IoC
  • 您可以使
    MyBaseWindow
    Window、IWindow、
    继承,也可以从该
    MyBaseWindow
    继承其他窗口

  • 我理解这个问题了吗?创建抽象类,让Window成为它的基类。我有很多窗口都做同样的事情。我想在窗口中实现一个抽象类,在这里我可以定义一些函数,我能很好地理解这个问题吗?创建抽象类,让Window成为它的基类。我有很多窗口都做同样的事情。我想在窗口中实现一个抽象类,在这里我可以定义一些函数,这很好,但是我得到了一个错误:
    的部分声明不能指定不同的基类
    我已经有一段时间没有处理XAML和部分类了,所以我有点生疏了。尝试将具体类保留为partial,但从抽象VORLAGE类定义中去掉partial关键字。xaml的设计器代码应该从VORLAGE而不是窗口继承。那是零件的另一部分。窗户看起来完全不一样。是否有机会超越设计器的一部分?这就是使用抽象类的想法。抽象类应该用作模板,只包含所有实际窗口实现将使用的相同共享代码。然后,在您的具体窗口中,您将编程使每个窗口实现彼此不同的特定组件。听起来不错,但我得到一个错误:
    的部分声明不能指定不同的基类
    我已经有一段时间没有处理XAML和部分类了,所以我有点生疏了。尝试将具体类保留为partial,但从抽象VORLAGE类定义中去掉partial关键字。xaml的设计器代码应该从VORLAGE而不是窗口继承。那是零件的另一部分。窗户看起来完全不一样。是否有机会超越设计器的一部分?这就是使用抽象类的想法。抽象类应该用作模板,只包含所有实际窗口实现将使用的相同共享代码。然后,在具体的窗口中,您将编写使每个窗口实现彼此不同的特定组件。