部分声明不得指定不同的基类

use*_*195 5 c# wpf

我知道在互联网上有关于此的信息,但我在将其翻译成我的情况时遇到了问题.

我有一个xaml窗口,我得到错误:'GX3OpenStackupGUIPlugin.GX3OpenStackupGUIPlugin'的部分声明不能指定不同的基类.

我的代码背后是:

public partial class GX3OpenStackupGUIPlugin : GX3ClientPlugin, IGX3PluginInterface
    {
Run Code Online (Sandbox Code Playgroud)

我的xaml是:

<Grid xmlns:my="clr-namespace:CustomControls;assembly=MultiComboBox"   xmlns:extToolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit/extended"   x:Class="GX3OpenStackupGUIPlugin.GX3OpenStackupGUIPlugin"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
Run Code Online (Sandbox Code Playgroud)

请有人建议:)

这是我找到的链接,但我正在努力翻译...... 部分声明不能指定不同的基类

在做了一点研究之后,我发现如果我改变我的代码来实现我的xaml中的顶级元素,它就会摆脱错误.这显然仍然是一个问题,因为我的代码隐藏类需要实现我设计的接口.

小智 8

您链接的问题包含答案.问这个问题的人是从这个开始的(哪个有效):

<A x:Class="B">
public partial class B : A
Run Code Online (Sandbox Code Playgroud)

他们把它改成了这个(这没用):

<A x:Class="C">
public partial class C : B
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为在幕后,基于包含从A继承的部分类的XAML生成.cs文件.要修复它,他们需要将其更改为:

<B x:Class="C">
public partial class C : B
Run Code Online (Sandbox Code Playgroud)

所以在你的情况下,我相信你应该替换Grid,即做这样的事情:

<namespace:GX3ClientPlugin x:Class="namespace.GX3OpenStackupGUIPlugin">
public partial class GX3OpenStackupGUIPlugin : GX3ClientPlugin
Run Code Online (Sandbox Code Playgroud)

(我假设GX3ClientPlugin最终继承自Grid或UserControl之类的东西?)


Mar*_*ell 1

这将由两个(或更多)部分组成partial class。如果您搜索,您应该找到另一个 class GX3OpenStackupGUIPlugin,它可能指定类似Control基本类型的内容。您只查看文件的一部分。另一半可能需要从 xaml 下扩展。

问题是两个文件正在做这样的事情:

(归档第一个)

public partial class GX3OpenStackupGUIPlugin : GX3ClientPlugin, IGX3PluginInterface {}
Run Code Online (Sandbox Code Playgroud)

(归档第二个)

public partial class GX3OpenStackupGUIPlugin : SomethingElse {...}
Run Code Online (Sandbox Code Playgroud)