如何为绑定到viewmodel属性的silverlight文本块提供设计时间值?

| 我的XAML中有一个TextBlock,它的文本绑定到了视图模型中的一个属性。
<TextBlock x:Name=\"SomeText\" Text=\"{Binding TheTextProperty}\" />
这可以正常工作,但是在设计时,没有视图模型,因此该属性不可解析且文本为空白。这在设计器中很难处理,因为它没有显示可见的文本。 如何在设计时指定一些默认文本?     
已邀请:
也许你可以尝试
<TextBlock x:Name=\"SomeText\" Text=\"{Binding TheTextProperty, FallbackValue=\'Some other text\'}\" />
如此处记录。     
您还可以使用设计时数据在解决方案中提供丰富的绑定体验。设置和运行起来有点困难,但这是要点。 首先,您在xaml中创建DataContext。在您的解决方案中添加一个新的Xml文档(根目录是一个好地方),并给它一个.xaml扩展名。在本例中,我们将其称为\“ foo.xaml \”。 在此文件中,删除所有XML,然后开始创建DataContext类型的实例。例如,如果您的DataContext是一个字符串(非常简单的示例),则文件将如下所示:
<string xmlns=\"clr-namespace:System;assembly=mscorlib\">LOL!</string>
你可能看起来像
<ViewModel xmlns=\"clr-namespace:MyNamespace\">
    <ViewModel.MyObservableCollection>
         <MyModel Name=\"foo\" />
         <!-- etc -->
将此文件的“构建操作”设置为DesignDataWithDesignTimeCreatableTypes: 接下来,在您的视图中,将以下名称空间和属性添加到Window / UserControl的根目录:
xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"
mc:Ignorable=\"d\"
d:DataContext=\"{d:DesignData Source=foo.xaml}\"
Source
是相对于当前文档的。所以,如果您的解决方案看起来像 观看次数 MyUserControl.xaml 数据 foo.xaml 您将
Source
设置为
../Data/foo.xaml
。 根据是否可以在设计时实例化ViewModel等,还有其他创建DesignData上下文的方法。     
另一个选择是使用DesignerProperties.GetIsInDesignMode函数来确定控件是否托管在VS / Blend中,并在这种情况下生成伪造的DataContext。 Laurent Bugnion在本文中提供了许多有关如何创建和使用设计时数据的示例。     

要回复问题请先登录注册