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

时间:2015-01-06 17:25:01

标签: c# mvvm catel

我正在尝试运行一个基于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

1 个答案:

答案 0 :(得分:0)

启用调试日志侦听器:

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

它会立即显示您的错误:

  

视图的视图模型&#39; WpfApplication1.MainWindow&#39;不可能   解决。确保自定义IViewModelLocator或注册   手动查看和查看模型

这是因为您没有通常在MVVM中使用的命名空间。您当然可以customize everything,但由于您是初学者,我建议您采取以下措施:

  1. 将视图模型移动到WpfApplication1.ViewModels命名空间
  2. 将视图移至WpfApplication1.Views命名空间(包括xaml和代码隐藏)
  3. 将App.xaml中的启动uri更改为&#34; /Views/MainWindow.xaml"
  4. 我还强烈建议您阅读getting started guide