繁体   English   中英

绑定控件的文本字段值时,在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”,有时由于缺少空间(如果绑定路径太长)而无法显示完整长度。

有什么方法可以在设计器中显示自定义文本,仅用于预览,而不是绑定路径或如上所示?

有多种方法可以专门为设计时间创建视图模型。 最简单的方法可能是这样的:

<TextBlock Text="{x:Bind ViewModel.SomeExampleText, FallbackValue='Hello!'}"/>

那个在设计器中显示了字符串“ Hello”,都带有Bindingx: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不需要与运行时视图模型有任何特定关系; 它只需要具有相同名称的合适属性即可。 如果您要绑定收藏,这可能是您最好的选择。

为“设计”视图创建一个特定的视图模型,以便使用不会进入运行时环境的实际数据来调入视图的布局和样式。

由于x:Bind会在背后寻找强类型数据源的代码,因此您需要在“设计”视图中模拟该数据绑定路径。 这是一种方法:

将d:DataContext属性应用于视图,将Type属性设置为视图。 当“ IsDesignTimeCreatable”为true时,它将创建代码隐藏的新实例。

d:DataContext="{d:DesignInstance Type=local:MainPage,IsDesignTimeCreatable=True}" 

您的后台代码可能具有ViewModel属性,该属性可以设置为带有伪数据的设计时状态或带有真实数据的运行时状态。

该博客文章显示了一个示例: http : //fast417.blogspot.com/2016/06/uwp-design-preview-with-xbind.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM