无法运行基于 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
启用调试日志侦听器:
public App()
{
#if DEBUG
LogManager.AddDebugListener();
#endif
}
它会立即显示问题所在:
视图 'WpfApplication1.MainWindow' 的视图模型不能 解决。确保自定义 IView模型定位器或注册 手动查看和查看模型
这是因为您没有通常在 MVVM 中使用的命名空间。您当然可以自定义所有内容,但由于您是初学者,我建议您执行以下操作:
- 将视图模型移动到 WpfApplication1.ViewModels 命名空间
- 将视图移动到 WpfApplication1.Views 命名空间(xaml 和代码隐藏)
- 将 App.xaml 中的启动 uri 更改为"/Views/MainWindow.xaml"
我还强烈建议您阅读入门指南。