WPF C#应用程序我有两个主窗口

本文关键字:两个 窗口 应用程序 WPF | 更新日期: 2023-09-27 18:29:13

我对WPF和c#非常陌生,对如何初始化应用程序有一些疑问。我正在学习一些关于LINQ类的教程,希望我可以将所有SQL Server数据与observableCollections绑定。

我发现的一个例子的开头是这样的(在App.xaml.cs文件中):

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        MainWindow app = new MainWindow();
        ProductViewModel context = new ProductViewModel();
        app.DataContext = context;
        app.Show();
    }
}

当我运行应用程序时,我会得到两个主窗口。上面的命令执行并打开第一个命令,但随后从一些我看不到的系统代码中调用了第二个命令(我可以在disassembler中看到,但这并没有真正的帮助)。因此,VS为我设置的应用程序似乎有一个标准条目,但示例代码(来自Rachel Lim)并没有做到这一点。我已经在各种文件中搜索了差异(比如App.g.I.cs,它有void Main()调用),我的应用程序和示例都是相同的。我正试图"控制"应用程序,以处理使用LINQ类创建可观测集合的问题。有没有人对VS和C#足够熟悉,可以给我一些可能发生的事情的提示?

WPF C#应用程序我有两个主窗口

问题可能出现在您的App.xaml中,它通常具有以下内容:

Application x:Class="WpfApplication1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
    </Application.Resources>
</Application>

如前所述,如果App.xaml.cs在其中一个事件中打开一个窗口,则需要确保在Application元素中删除该StartupUri="MainWindow.xaml"