无法运行基于 catel 4 的简单应用程序

本文关键字:简单 应用程序 catel 运行 | 更新日期: 2023-09-27 18:36:22

我正在尝试运行一个基于 catel 4 的简单应用程序,但我什至没有显示窗口。我没有错误或警告

下面是测试应用程序和应用程序本身的代码。

<catel:DataWindow x:Class="WpfApplication1.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:catel="http://catel.codeplex.com"
    Title="MainWindow" Height="350" Width="525">
<Grid>
    <CheckBox Content="Check me to continue" IsChecked="{Binding UserAgreedToContinue, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" />
</Grid>

public partial class MainWindow : DataWindow
{
    public MainWindow()
        : base(DataWindowMode.Custom)
    {
        InitializeComponent();
    }
}
public class MainWindowViewModel : ViewModelBase
{
    public override string Title { get { return "Just acknowledge"; } }
    public bool UserAgreedToContinue
    {
        get { return GetValue<bool>(UserAgreedToContinueProperty); }
        set { SetValue(UserAgreedToContinueProperty, value); }
    }
    public static readonly PropertyData UserAgreedToContinueProperty = RegisterProperty("UserAgreedToContinue", typeof(bool));
}

我做错了什么?为什么甚至不启动窗口?https://www.dropbox.com/s/qjf1khq10y606ql/WpfApplication1.zip?dl=0

无法运行基于 catel 4 的简单应用程序

启用调试日志侦听器:

    public App()
    {
#if DEBUG
        LogManager.AddDebugListener();
#endif
    }

它会立即显示问题所在:

视图 'WpfApplication1.MainWindow' 的视图模型不能 解决。确保自定义 IView模型定位器或注册 手动查看和查看模型

这是因为您没有通常在 MVVM 中使用的命名空间。您当然可以自定义所有内容,但由于您是初学者,我建议您执行以下操作:

  1. 将视图模型移动到 WpfApplication1.ViewModels 命名空间
  2. 将视图移动到 WpfApplication1.Views 命名空间(xaml 和代码隐藏)
  3. 将 App.xaml 中的启动 uri 更改为"/Views/MainWindow.xaml"

我还强烈建议您阅读入门指南。