Catel框架调试错误

时间:2013-06-08 20:51:19

标签: mvvm catel

我正在尝试学习Catel MVVM,通过让最简单的Catel实例在VS Express 2012上运行并不断出现错误。我认为我的问题在于我的“使用”语句,引用或我的XAML中的标题。自动生成的文件写入违规行,如下所示在MainWindow.g.cs中。代码文件非常短,所以我已将它们包括在内。

模型,视图模型和视图在一个解决方案下分为三个项目。

  • 型号 - 现在为空白
  • ViewModel -MainWindowViewModel(尚无属性)
  • 查看 -MainWindow.xmal,MainWindow.xmal.cs(尚无控件或属性)

    我一直收到以下警告并附带错误:

      

    'c:... \ MainWindow.g.cs'中的'Catel.Windows.DataWindow'类型   与导入类型'Catel.Windows.DataWindow'冲突   'C:\ Catel.MVVM.dll'。使用中定义的类型   'C:... \ MainWindow.g.cs'。

    和错误:

      

    Catel.Windows.DataWindow< ViewModels.MainWindowViewModel>是   废弃:'请使用'Catel.Windows.DataWindow'代替。将会   已删除版本“4.0”。'   C:... \ MyFirstCatel \ OBJ \调试\ MainWindow.g.cs

    MainWindow.xaml

    <Windows:DataWindow 
            x:Class="Catel.Windows.DataWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"           
            xmlns:MainWindowViewModel="clr-namespace:ViewModels"
            xmlns:Windows="clr-namespace:Catel.Windows;assembly=Catel.MVVM"
           x:TypeArguments="MainWindowViewModel:MainWindowViewModel"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <TextBlock>Hello world!</TextBlock>
        </Grid>
    </Windows:DataWindow>
    

    MainWindow.xaml.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    using Catel.Windows;
    
    
    namespace MyFirstCatel
    {
    
        public partial class MainWindow : Catel.Windows.DataWindow
        {
            public MainWindow() 
            {
                InitializeComponent();
            }
        }
    }
    

    MainWindowViewModel.cs

    using System.Windows;
    using Catel.MVVM;
    
    namespace ViewModels
    {
        public class MainWindowViewModel : ViewModelBase
        {
            public MainWindowViewModel()
                : base()
            {
            }
    
            public override string Title { get { return "View model title"; } }
    
            public string Slug
            {
                get { return GetValue<string>(SlugProperty); }
                set { SetValue(SlugProperty, value); }
            }
    
            public static readonly Catel.Data.PropertyData SlugProperty = RegisterProperty("Slug", typeof(string), null);
    
        }
    }
    

    在MainWindow.g.cs

    namespace Catel.Windows {
        public partial class DataWindow : Catel.Windows.DataWindow<ViewModels.MainWindowViewModel>, System.Windows.Markup.IComponentConnector 
    {
         private bool _contentLoaded;
         ... code removed for post ....
    
    }
    

    }

  • 1 个答案:

    答案 0 :(得分:0)

    只有一件事是错的。在xaml定义中,您仍然使用指定vm类型的旧方法。删除x:TypeArguments,错误应该消失。