You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.Net WPF项目中为UserControl加属性并继承时遇BC30928错误求助

问题原因与解决办法

这个错误属于代码编写问题,核心原因是UserControl的XAML与后台代码的部分类基类不匹配:
WPF中,UserControl的XAML文件会自动生成一个partial类,默认继承UserControl;但你后台代码让ucTestInherit继承自定义基类clsUcBase,两个部分类的基类不一致,触发了BC30928错误。

解决步骤

  • 修改XAML根标签:将原有的<UserControl>替换为你的自定义基类clsUcBase,同时添加基类所在的命名空间引用(比如xmlns:local="clr-namespace:你的命名空间")。
  • 确保后台代码的ucTestInherit是partial类,且仅继承clsUcBase,不要重复指定继承UserControl。
  • 自定义基类clsUcBase需满足:public访问修饰符、partial类、继承UserControl、包含public无参构造函数(XAML实例化时会调用)。

示例代码

基类clsUcBase(VB代码)

Imports System.Windows.Controls
Imports System

Namespace YourAppNamespace
    Public Partial Class clsUcBase
        Inherits UserControl

        Public Property ucGuid As Guid = Guid.NewGuid()

        Public Sub New()
            InitializeComponent()
        End Sub
    End Class
End Namespace

ucTestInherit的XAML代码

<local:clsUcBase x:Class="YourAppNamespace.ucTestInherit"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:YourAppNamespace">
    <!-- 这里放置用户控件的UI内容 -->
</local:clsUcBase>

ucTestInherit的后台VB代码

Namespace YourAppNamespace
    Partial Public Class ucTestInherit
        Inherits clsUcBase

        Public Sub New()
            InitializeComponent()
        End Sub
    End Class
End Namespace

内容的提问来源于stack exchange,提问作者DSchmidt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 14:52:06