当控件的文本字段值被绑定时,文本在 VS 2015 设计器上可见
Text visible on VS 2015 designer when control's text field value is binded
每当我将文本 属性 绑定到视图模型时 属性
<TextBlock Text="{Binding SomeExampleText}"/>
在设计器上,我在运行时将出现文本的地方看不到任何东西。当我使用 x:Bind:
<TextBlock Text="{x:Bind ViewModel.SomeExampleText}"/>
在设计器上我看到"ViewModel.SomeExampleText",有时因为缺少space(如果绑定路径太长)所以不显示全长
有什么方法可以在设计器中显示自定义文本以供预览而不是绑定路径或什么都不显示,如上所示?
有多种方法可以专门为设计时创建视图模型。最简单的方法可能是这样的:
<TextBlock Text="{x:Bind ViewModel.SomeExampleText, FallbackValue='Hello!'}"/>
那个在设计器中显示字符串 "Hello",同时带有 Binding
和 x:Bind
。
对于 Binding
,您可以像这样设置 design-time 数据上下文:
<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
不需要与您的 run-time 视图模型有任何特定关系;它只需要具有相同名称的合适属性。如果您绑定到集合,这可能是您最好的选择。
为设计视图创建一个特定的视图模型,以便使用不会进入 运行 时间环境的真实数据调入视图的布局和样式。
由于 x:Bind 查找强类型数据源的代码隐藏,您需要在设计视图中模拟该数据绑定路径。这是一种方法:
将 d:DataContext 属性应用于您的视图,将类型 属性 设置为您的视图。当 "IsDesignTimeCreatable" 为真时,它将创建一个新的代码隐藏实例。
d:DataContext="{d:DesignInstance Type=local:MainPage,IsDesignTimeCreatable=True}"
您的代码隐藏可能有一个 ViewModel 属性,可以将其设置为具有虚假数据的设计时状态或具有真实数据的 运行 时状态。
此博客 post 显示了一个示例:http://fast417.blogspot.com/2016/06/uwp-design-preview-with-xbind.html
每当我将文本 属性 绑定到视图模型时 属性
<TextBlock Text="{Binding SomeExampleText}"/>
在设计器上,我在运行时将出现文本的地方看不到任何东西。当我使用 x:Bind:
<TextBlock Text="{x:Bind ViewModel.SomeExampleText}"/>
在设计器上我看到"ViewModel.SomeExampleText",有时因为缺少space(如果绑定路径太长)所以不显示全长
有什么方法可以在设计器中显示自定义文本以供预览而不是绑定路径或什么都不显示,如上所示?
有多种方法可以专门为设计时创建视图模型。最简单的方法可能是这样的:
<TextBlock Text="{x:Bind ViewModel.SomeExampleText, FallbackValue='Hello!'}"/>
那个在设计器中显示字符串 "Hello",同时带有 Binding
和 x:Bind
。
对于 Binding
,您可以像这样设置 design-time 数据上下文:
<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
不需要与您的 run-time 视图模型有任何特定关系;它只需要具有相同名称的合适属性。如果您绑定到集合,这可能是您最好的选择。
为设计视图创建一个特定的视图模型,以便使用不会进入 运行 时间环境的真实数据调入视图的布局和样式。
由于 x:Bind 查找强类型数据源的代码隐藏,您需要在设计视图中模拟该数据绑定路径。这是一种方法:
将 d:DataContext 属性应用于您的视图,将类型 属性 设置为您的视图。当 "IsDesignTimeCreatable" 为真时,它将创建一个新的代码隐藏实例。
d:DataContext="{d:DesignInstance Type=local:MainPage,IsDesignTimeCreatable=True}"
您的代码隐藏可能有一个 ViewModel 属性,可以将其设置为具有虚假数据的设计时状态或具有真实数据的 运行 时状态。
此博客 post 显示了一个示例:http://fast417.blogspot.com/2016/06/uwp-design-preview-with-xbind.html