每当我绑定text属性以查看模型属性
时<TextBlock Text="{Binding SomeExampleText}"/>
设计器上的我在运行时出现文本的地方什么都没看到。当我使用x:Bind:
<TextBlock Text="{x:Bind ViewModel.SomeExampleText}"/>
我在设计器上看到&#34; ViewModel.SomeExampleText&#34;,由于空间不足(如果绑定路径太长),有时它不会显示全长。
有没有办法在设计器中显示自定义文本只是为了预览而不是绑定路径或没有像上面的灰烬?
答案 0 :(得分:1)
有一些方法可以专门为设计时创建视图模型。最简单的方法可能就是:
<TextBlock Text="{x:Bind ViewModel.SomeExampleText, FallbackValue='Hello!'}"/>
在设计器中显示字符串“Hello”,包括Binding
和x:Bind
。
对于Binding
,您可以设置如下设计时数据上下文:
<Page
...
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModels="using:MyNameSpace.ViewModels"
d:DataContext="{d:DesignInstance Type=viewModels:DesignTimeViewModel, IsDesignTimeCreatable=True}"
mc:Ignorable="d">
DesignTimeViewModel
不需要与运行时视图模型有任何关联性;它只需要具有相同名称的合适属性。如果你对收藏品有约束力,这可能是你最好的选择。
答案 1 :(得分:0)
为“设计”视图创建特定的视图模型,以便使用无法进入运行时环境的实际数据来调整视图的布局和样式。
由于x:Bind看起来是强类型数据源的代码隐藏,因此您需要在“设计”视图中模仿该数据绑定路径。这是一种方式:
将d:DataContext属性应用于视图,将Type属性设置为视图。当&#34; IsDesignTimeCreatable&#34;是的,它会创建一个新的代码隐藏实例。
d:DataContext="{d:DesignInstance Type=local:MainPage,IsDesignTimeCreatable=True}"
你的代码隐藏可能有一个ViewModel属性,可以设置为假数据的设计时状态或带有实际数据的运行时状态。
此博文显示了一个示例:http://pastebin.com/zKEtXQmq