Я пытаюсь учиться с помощью Caliburn.Micro с WPF. Как добавить несколько представлений внутри представления?Добавить несколько представлений внутри представления с помощью WPF и Caliburn.Micro
<Window x:Class="ProjectName.Views.MainView"
...>
<Grid>
<views:MyControlView />
</Grid>
</Window>
Другой вид, с ViewModel: MyControlViewModel
<UserControl x:Class="ProjectName.Views.MyControlView"
...>
<Grid>
...
</Grid>
</UserControl>
Если я просто добавить вид, он не обнаружит, что она имеет ViewModel с соответствующим именем. Как я могу связать это с ним?
Я пробовал с различными загрузчиками и использовал что-то вроде cal: Bind.Model = "путь/имя_класса/объединение двух". Попробовали добавить это в mainview и в usercontrol (MyControlView). Я ОЧЕНЬ благодарен за любую помощь в этом вопросе. Я довольно много застрял, и я действительно хочу использовать Caliburn.Micro :)
С наилучшими пожеланиями, diamondfish
Edit: Я до сих пор не могу заставить его работать, проблема, как представляется, в bootstrapper или что-то еще. Но просто для уточнения, вот мой код, который я запускаю для тестового проекта.
MainView XAML:
<Window x:Class="Test.Views.MainView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
xmlns:views="clr-namespace:Test.Views"
Title="MainWindow" Height="360" Width="640">
<Grid>
<views:MyControlView />
</Grid>
код MainViewModel:
public partial class MainViewModel : PropertyChangedBase
{
}
MyControlView XAML:
<UserControl x:Class="Test.Views.MyControlView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
cal:Bind.Model="Test.MyControlViewModel"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<TextBlock Text="{Binding MyProp}"/>
</Grid>
MyControlView код:
public class MyControlViewModel : PropertyChangedBase
{
public string MyProp
{
get { return "Working"; }
}
}
Скриншот ошибки: http://clip2net.com/s/1gtgt
Я попытался
cal:Bind.Model="Test.ViewModels.MyControlViewModel"
, а также. Также попробовал кал-ссылка:
xmlns:cal="http://www.caliburnproject.org"
Скриншот моего проекта http://clip2net.com/s/1gthM
Поскольку документация в основном для Silverlight, а иногда для Caliburn и не СМ, я мог бы реализован Загрузчик неправильно. Для этого тест-проекта, это так же, как это: (с .xaml-изменения в App.xaml)
public class BootStrapper : Bootstrapper<MainViewModel>
{
}
Пожалуйста, помогите мне здесь! Похоже, что это какие-то основные вещи я пропускаю :)
- отредактированный пост, чтобы включить тег MVVM, добро пожаловать в SO! – EtherDragon
Проверьте anser - я добавил раздел об экспорте этого типа. Это важное требование для c.m найти ViewModel, связанную с представлением. – EtherDragon