gpt4 book ai didi

c# - Xaml WPF MVVM 命名空间和新项目文件夹,InitializeComponent(); StartupUri=

转载 作者:行者123 更新时间:2023-11-30 14:47:21 26 4
gpt4 key购买 nike

我创建了一些文件夹并整理了我的文件,以保持 MVVM 模式的整洁。模型文件夹、 View 文件夹和 ViewModel 文件夹。

它会在许多层面上产生命名空间问题。

首先是 InitializeComponent();

  • 在当前上下文中不存在

第二个StartupUri=

  • 找不到资源

我可以找到一些答案,但没有一个是完整的。从基本情况看:

  1. 我创建了一个新项目 WPF c#(我们将其命名为 PROJECT)
  2. 我创建了 3 个新文件夹。
  3. 我将 MainView 移动到 View 文件夹。

PROJECT\app.xaml 中应该包含什么?

  • x:Class=""
  • StartupUri=""

PROJECT\View\MainWindow.xaml 中应该包含什么?

  • x:Class=""

PROJECT\View\MainWindow.xaml\MainWindow.cs 中应该有什么?

  • 命名空间

PROJECT\ViewModel\FooViewModel.cs 怎么样?

PROJECT\Model\FooModel.cs 怎么样?

为什么?

因此,可以完全回答类似的问题。非常感谢

最佳答案

App.xaml 是您的应用程序的起点。x:Class 应始终定义实际类的完整命名空间。所以在您的示例中,App.xaml 如下所示:

 x:Class="PROJECT.App"
StartupUri="Viewmodel/MainWindow.xaml"

Startup uri 定义所需第一页的相对路径。在您的情况下是 Viewmodel/MainWindow.xaml

如果您将文件从一个位置移动到另一个位置,您应该检查命名空间并相应地进行调整。对于您的 MainWindow 会像这里一样:

using System.Windows;

namespace PROJECT.Viewmodel
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
}
  • XAML
<Window x:Class="PROJECT.Viewmodel.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:PROJECT"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>

</Grid>
</Window>

请记住将代码隐藏 (.cs) 和 xaml 文件设置为指向相同的命名空间。祝你好运!

关于c# - Xaml WPF MVVM 命名空间和新项目文件夹,InitializeComponent(); StartupUri=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45437965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com