怎么看在XAML编辑器(它在运行时)设计时数据绑定?(How to see design-time

2019-09-02 02:12发布

我出现的数据绑定的版本号如下:

<Window <!-- ... --> DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <Grid>
        <TextBlock>
            Version is: 
            <Run Text="{Binding Version, Mode=OneWay}"></Run>
            and advancing...
        </TextBlock>
    </Grid>
</Window>

并且它在运行时的工作。

我怎样才能在在Visual Studio 2012 XAML编辑器设计时看到了吗? 我只看到:

Version is: and advancing...

代替:

Version is: 5.2.2 and advancing...

编辑 - 我的解决方案:

法律上的回答下面的作品,但我最终使用一个虚拟视图模型静态代码技术 ,这对我的作品,因为数据是真实的视图模型类型的模拟更好:

d:DataContext="{Binding Source={StaticResource DesignViewModel}}" ...

Answer 1:

简短的回答,你不能这样做的。 VS设计师不执行运行时代码和你的绑定将不会在德兴时间来解决。 但对于通过设计时数据支持d:DesignData扩展。

您可以设置设计数据方面是这样的:

<Window  
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         mc:Ignorable="d" 
         d:DataContext="{d:DesignData Source=/SampleData/SomeSampleData.xaml}"
         DataContext="{Binding RelativeSource={RelativeSource Self}}">
  <Grid>
     <TextBlock>
        Version is: 
        <Run Text="{Binding Version, Mode=OneWay}"></Run>
        and advancing...
     </TextBlock>
  </Grid>
</Window>

d:DataContext={d:DesignData....设置德兴时间DataContext将用于解决VS设计表面绑定。 您可以将其设置为包含您的样本数据的XAML文件。 示例XAML文件应以“DesignData”生成操作建成。

查看更多在这里: http://blogs.msdn.com/b/wpfsldesigner/archive/2010/06/30/sample-data-in-the-wpf-and-silverlight-designer.aspx



Answer 2:

请确保您在您的XAML文件的根标签这些定义(在你的情况下,窗口标签):

xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"

然后,在XAML(包括根标签),随时随地可以补充一点:

d:DataContext="{d:DesignInstance myNamespace:MyViewModel, IsDesignTimeCreatable=True}"

现在,你只需要确保你在构造函数初始化值或具有默认值的属性。

如果你需要运行的设计模式,一种特殊的逻辑,看看这个答案 。



文章来源: How to see design-time data-binding in XAML editor (it works in runtime)?