WPF错误消息:部分声明不能指定不同的基类

use*_*291 15 wpf wpf-controls

为什么我有UserControl的此错误消息:

MyNamespace.MyUserControl的部分声明不能指定不同的基类

仅仅因为我从另一个名称空间继承而来自我在另一个名称空间中创建,而另一个名称空间在XAML中被引用为

xmlns:my="clr-namespace:ReferedNamespace;assembly=ReferedNamespace"
Run Code Online (Sandbox Code Playgroud)

Tim*_*hyP 29

很少在这里继续,但这通常发生在后面的代码和xaml文件不从相同的基类继承.

由于我们没有关于您的问题的所有细节,我将创建一个会导致抛出相同异常的情况,这可能有助于您理解您的问题.

例如,只需使用Visual Studio创建新的WPF应用程序,XAML可能如下所示:

<Window x:Class="WpfApplication1.MainWindow" .....>
Run Code Online (Sandbox Code Playgroud)

后面的代码将包含这样的内容:

public partial class MainWindow : Window
{
    //Code here
}
Run Code Online (Sandbox Code Playgroud)

请注意这里的'partial'修饰符.这意味着此类(MainWindow)可能未在单个文件中定义,而是分布在多个文件中,在本例中为XAML(.xaml.cs)和CS(.cs)文件.

现在添加一个新的UserControl到解决方案.它将命名为UserControl1.

在不对XAML进行任何更改的情况下,更改MainWindow的代码:

public partial class MainWindow : UserControl1
{
    //Code here
}
Run Code Online (Sandbox Code Playgroud)

现在你将得到你质疑的例外.

在代码中查找类似的内容,如果仍然找不到解决方案,请提供更多代码.

  • 我们如何告诉 xaml 使用 `UserControl1` 而不是 `Window` ? (2认同)

شري*_*يشى 18

查看此部分的.cs和.xaml文件


    namespace BUSsAsDesign.GUI
    {
      public partial class IGPopUP : Window
      {

       //code here

      }
    }
    //**becomes**
    namespace BUSsAsDesign.GUI
    {
      public partial class IGPopUP : UserControl
      {

       //code here

       } 
    }
Run Code Online (Sandbox Code Playgroud)

- 我希望它有用:).

  • +1非常感谢,这实际上提供了有问题的解决方案! (2认同)