目前正在研究卡特尔。

在Catel.Examples的PersonApplication中-具体来说,PersonWindow.xaml:在Visual Studio设计器中未显示设计时数据。

在PersonViewModel的代码中,公共属性被注释掉。显然这是因为代码正在使用Fody在运行时创建Model属性。因此,我假定Visual Studio Designer需要公共属性才能在Designer中显示设计时数据,所以我对公共属性未加注释。尽管如此,DesignPersonViewModel的设计时数据仍未在设计器中显示。

该应用程序可以在运行时正确运行。在Building上没有消息表明XAML或代码中存在问题。声明设计时数据上下文的XAML代码正确:

d:DataContext="{d:DesignInstance ViewModels:DesignPersonViewModel,
                                 IsDesignTimeCreatable=True}"


为什么在设计器中不显示设计时数据的任何解释?

我正在使用Visual Studio 2015。

最佳答案

尽管如此,我对Catel的框架深表赞赏,但我也目睹了这种奇怪的举动

似乎依赖项属性未连接到[Model]装饰的属性。但是,尽管应该对其进行修复,但是您可以解决直接设置依赖项属性的方法。

public PersonViewModel(Person person) // this approach works
{
    // Person = person ?? new Person();
    // The following 2 lines provide DesignTime data
    SetValue("FirstName", "Joe");
    SetValue("LastName", "Dalton");
    GenerateData = new Command<object, object>(OnGenerateDataExecute, OnGenerateDataCanExecute);
    ToggleCustomError = new Command<object>(OnToggleCustomErrorExecute);
}

public PersonViewModel(Person person) // this approach does not work
{
    // Person = person ?? new Person();
    Person = new Person() { FirstName = "Joe", LastName = "Dalton" };
    GenerateData = new Command<object, object>(OnGenerateDataExecute, OnGenerateDataCanExecute);
    ToggleCustomError = new Command<object>(OnToggleCustomErrorExecute);
}

关于c# - 卡特尔人应用实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41004370/

10-13 03:14