Поддерживает ли Caliburn.Micro данные времени разработки?

Поддерживает ли Caliburn.Micro данные времени разработки? Я попробовал следующие шаги; Я создал простую программу hello world. Где ShellViewModel является производным от IShell. Запустив пример программы, он показывает приветственное слово во время выполнения. Поскольку модель представления является производной от 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>

Is there anything I a missing? Thanks


person Nair    schedule 21.07.2011    source источник
comment
Он выглядит завершенным, вопрос на 10000 долларов. Работает ли это для вас?   -  person Graeme Bradbury    schedule 21.07.2011
comment
Хорошо, ваш код d:DataContext=blah... идеален, вам все еще нужен Text={Binding HelloWorld} для blend для доступа к данным (я полностью упустил из виду эту часть), Blend не запускает xaml через соглашение Caliburn связующее. Его нужно задать явно.   -  person Graeme Bradbury    schedule 22.07.2011
comment
Да, это было так. это должен был быть ответ. Можете ли вы сделать это ответом, чтобы я мог отметить как ответ?   -  person Nair    schedule 22.07.2011
comment
Это работает очень хорошо: смешать в wp7"> stackoverflow.com/questions/6519647/   -  person Derek Beattie    schedule 23.07.2011


Ответы (3)


Пожалуйста, взгляните на Пример проектных данных Caliburn Micro от Дерека Битти.

person Sevenate    schedule 24.03.2012

Применение Bind.AtDesignTime должно помочь.

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

Цитируя комментарий Грэма, так как он ответил на мой вопрос.

Хорошо, ваш код d:DataContext="blah... идеален, вам все еще нужен Text={Binding HelloWorld} для blend для доступа к данным (я полностью упустил из виду эту часть), Blend не запускает xaml через связующее соглашение Caliburn. Его нужно задать явно.

— Грэм Брэдбери

person Nair    schedule 17.08.2011