WPF解决方案有点奇怪

WPF解决方案有点奇怪,wpf,vb.net,Wpf,Vb.net,这在我基于WPF的解决方案中的几个旧项目或新项目中发生。我刚刚添加了一个名为Dashboard的窗口,并在生成的“Dashboard.xaml.vb文件中输入了以下代码。注意:当您创建Sub-New`时,它通常会为您粘贴InitializeComponent,但现在它不会。因此,我: Public Class DashBoard Public Sub New() InitializeComponent() End Sub End Class Ans编译器抱怨

这在我基于WPF的解决方案中的几个旧项目或新项目中发生。我刚刚添加了一个名为
Dashboard
的窗口,并在生成的“Dashboard.xaml.vb
文件中输入了以下代码。注意:当您创建
Sub-New`时,它通常会为您粘贴InitializeComponent
,但现在它不会。因此,我:

Public Class DashBoard

    Public Sub New()
        InitializeComponent()
    End Sub

End Class
Ans编译器抱怨:

错误15未声明“InitializeComponent”。可能无法进入 由于其保护级别

这就好像IDE不知道这是窗口背后的代码一样。缺少某种部分类或链接,但在vbproj文件中,我们仍然可以找到该链接:

<Compile Include="Bridge.xaml.vb">
  <DependentUpon>Bridge.xaml</DependentUpon>
</Compile>

要将您的
Dashboard.xaml.vb
文件与现有的
Dashboard.xaml
文件关联起来,您需要:

  • 声明类
    部分
    ,以及
  • 使其从WPF
    窗口继承,例如:
  • 公共部分类仪表板继承窗口

    只要您的类不是从
    窗口继承的
    ,很明显它找不到
    InitializeComponent
    方法


    但是,这并不能解释为什么不自动生成必要的代码部分。
    Dashboard.xaml
    文件是什么样子的?

    那不行,我已经试过了。VS应该在VB.NET项目的黑盒魔法中完成所有这些。如果我不能使用C#,考虑告诉客户端填充它。检查
    .xaml
    .xaml.vb
    文件是否相互连接,方法是在一些文本编辑器中关闭VS并打开
    .vbproj
    文件,然后搜索
    Dashboard.xaml.vb
    :它应该包含一个类似于
    Dashboard.xaml
    ,的条目,因为这告诉VS这两个文件“属于一起”,所以它们是这样连接的。@ProfK您在问题中没有显示这一点。问题显示Bridge.xaml而不是Dashboard.xaml。
    <Window x:Class="DashBoard"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="DashBoard" Height="300" Width="300">
        <Grid>
    
        </Grid>
    </Window>
    
    Public Class DashBoard
    
    End Class