目前正在研究卡特尔。
在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/