Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XAML中的DesignInstance是什么_C#_Xaml_Mvvm - Fatal编程技术网

C# XAML中的DesignInstance是什么

C# XAML中的DesignInstance是什么,c#,xaml,mvvm,C#,Xaml,Mvvm,我实际上学习了MVVM模式,并在教程中发现: d:DataContext="{d:DesignInstance step1:ViewModel}"> 我知道我使用数据上下文来绑定数据,但我不明白DesignInstance有什么用处,以及我为什么要写在那里 在MSDN HP展台上:“DesignInstance是一个设计时属性。”但我对此无能为力 编辑: 在visual studio编辑器中打开视图时,将使用设计实例中的教程步骤1 假设您有一个使用列表视图来显示产品列表的视图,并且您使用

我实际上学习了MVVM模式,并在教程中发现:

d:DataContext="{d:DesignInstance step1:ViewModel}">
我知道我使用数据上下文来绑定数据,但我不明白DesignInstance有什么用处,以及我为什么要写在那里

在MSDN HP展台上:“DesignInstance是一个设计时属性。”但我对此无能为力

编辑:
在visual studio编辑器中打开视图时,将使用设计实例中的教程步骤1

假设您有一个使用列表视图来显示产品列表的视图,并且您使用一个模板来显示每个产品。如果没有viewmodel,您的视图将不会显示任何内容,并且您无法在应用程序中真正看到视图的外观


您不希望运行整个应用程序,以及编辑器中的所有依赖项。而是提供一个设计实例,使用一些存根数据使视图呈现一些产品。可以将其视为使视图在编辑器中正确呈现的一些伪测试数据。

您可以通过依赖项注入框架(如Cariburn)为视图定义视图模型,或者只需在代码中设置视图模型,因此视图将运行并工作得很好,但由于视图模型在编辑器中没有明确定义如果要导航到视图中绑定的视图模型属性,则visual studio XAML设计器没有导航到何处的线索。使用正确类型的
DesignInstance
将使设计器能够为您导航到视图模型属性。

这样编辑器就可以向您显示intellisense,因为它有一个可从中获取属性的类型。当您运行应用程序时,名称空间被忽略,因此它仅用于设计视图。啊,好吧,那么DesignData也是一个虚拟的?是的,两者都是虚拟的!