Silverlight 4.0 Caliburn.Micro是否支持设计时数据?

Silverlight 4.0 Caliburn.Micro是否支持设计时数据?,silverlight-4.0,caliburn.micro,design-time-data,Silverlight 4.0,Caliburn.micro,Design Time Data,Caliburn.Micro是否支持设计时数据? 我尝试了以下步骤; 我创建了一个简单的hello world程序。其中,ShellViewModel是从IShell派生的。通过运行示例程序,它确实在运行时显示hello word。由于视图模型是从IShell派生的,因此我创建了一个虚拟类,该类也是从IShell派生的,并将其用作设计时实例 public class SampleShellViewModel:IShell { #region IShell Members pu

Caliburn.Micro是否支持设计时数据? 我尝试了以下步骤; 我创建了一个简单的hello world程序。其中,ShellViewModel是从IShell派生的。通过运行示例程序,它确实在运行时显示hello word。由于视图模型是从IShell派生的,因此我创建了一个虚拟类,该类也是从IShell派生的,并将其用作设计时实例

public class SampleShellViewModel:IShell
{

    #region IShell Members

    public string HelloWorld
    {
        get { return "Hello World"; }
    }

    #endregion
}
在视图中,我添加了设计时上下文,如下所示

<UserControl x:Class="HelloWorld.ShellView"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         mc:Ignorable="d"
         xmlns:sampleData="clr-namespace:HelloWorld"
         d:DesignHeight="287" d:DesignWidth="518"
         >

<Grid Background="White" d:DataContext="{d:DesignInstance sampleData:SampleShellViewModel, IsDesignTimeCreatable=True}">
    <TextBlock Name="HelloWorld"
               VerticalAlignment="Center"
               HorizontalAlignment="Center"
               FontSize="20" />
</Grid>

我少了什么吗?
谢谢引用格雷姆的评论,因为它回答了我的问题

好的,您的
d:DataContext=“blah…
代码非常完美。您仍然需要
Text={Binding HelloWorld}
对于blend访问数据(Id完全掩盖了查看该部分),blend不会通过Caliburn约定绑定器运行xaml。它需要显式设置


-格雷姆·布拉德伯里7月22日15:14“引用格雷姆的评论,因为它回答了我的问题

好的,您的
d:DataContext=“blah…
代码非常完美。您仍然需要
Text={Binding HelloWorld}
对于blend访问数据(Id完全掩盖了查看该部分),blend不会通过Caliburn约定绑定器运行xaml。它需要显式设置


–Graeme Bradbury 7月22日15:14“

请看Derek Beattie的作品。

请看Derek Beattie的作品。

应用Bind.AtDesignTime应该可以

<UserControl 
     xmlns:cal="http://www.caliburnproject.org"
     cal:Bind.AtDesignTime="True"
     >
    <!-- etc -->
</UserControl>

应用Bind.AtDesignTime应该可以做到这一点

<UserControl 
     xmlns:cal="http://www.caliburnproject.org"
     cal:Bind.AtDesignTime="True"
     >
    <!-- etc -->
</UserControl>


看起来很完整,10000美元的问题是。它对您有用吗?好的,您的d:DataContext=“blah…代码非常完美,您仍然需要Text={Binding HelloWorld}才能让blend访问数据(查看该部分时Id完全被掩盖了),Blend不会通过Caliburn convention binder运行xaml。它需要显式设置。是的,就是这样。它应该是答案。你能把它作为一个答案,这样我就可以标记为答案吗?这很有效:它看起来很完整,10000美元的问题是。它对你有用吗?好的,你的d:DataContext=“blah…”。。。代码是完美的,您仍然需要Text={Binding HelloWorld}才能让blend访问数据(Id完全忽略了查看该部分),blend不会通过Caliburn约定绑定器运行xaml。它需要明确设置。是的,就是这样。这应该是答案。你能给我一个答案,这样我就可以把它标记为答案了吗?这很有效: