103*_*0SL 3 c# wpf xaml namespaces mvvm
我创建了一些文件夹并组织我的文件以保持MVVM模式的清洁.模型文件夹,视图文件夹和ViewModel文件夹.
它在许多层面上创建了命名空间问题.
首先是InitializeComponent();
其次是StartupUri =
我可以找到一些答案,但没有一个完整.从基本情况来看:
什么应该在PROJECT\app.xaml?
什么应该在PROJECT\View\MainWindow.xaml?
什么应该在PROJECT\View\MainWindow.xaml\MainWindow.cs?
PROJECT\ViewModel\FooViewModel.cs怎么样?
PROJECT\Model\FooModel.cs怎么样?
为什么?
因此,类似的问题可以完全被证实.非常感谢
App.xaml是您的应用程序的起点.x:类应始终定义实际类的完整命名空间.所以在你的例子中,App.xaml如下所示:
x:Class="PROJECT.App"
StartupUri="Viewmodel/MainWindow.xaml"
Run Code Online (Sandbox Code Playgroud)
启动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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)<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文件都设置为指向同一名称空间.祝你好运!