Поддерживает ли 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>
Я что-то пропустил? Спасибо
3 ответа
Цитирую комментарий Грэма, так как он ответил на мой вопрос.
Хорошо твой
d:DataContext="blah...
код совершенен, вам все еще нужноText={Binding HelloWorld}
для blend для доступа к данным (Id полностью скрыт при просмотре этой части), Blend не запускает xaml через механизм связывания Caliburn. Это должно быть явно установлено.
- Грэм Брэдбери 22 июля в 15:14"
Пожалуйста, посмотрите на Пример данных Caliburn Micro. Дерек Битти.
Применение Bind.AtDesignTime должно помочь.
<UserControl
xmlns:cal="http://www.caliburnproject.org"
cal:Bind.AtDesignTime="True"
>
<!-- etc -->
</UserControl>