Я перейду непосредственно к моей проблеме. :)повторное использование usercontrol (View) с различными ViewModels
Я использую Caliburn.Micro и mvvm. 16 Usercontrols находятся на моем MainView. Все смотрят то же самое с некоторыми кнопками, этикетки, ... как это:
<UserControl x:Class=" Projectxy.usercontrolexample01View"
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:local="clr-namespace:Projectxy"
mc:Ignorable="d"
d:DesignHeight="200" d:DesignWidth="305">
<Grid>
<Button x:Name="button" Content="Button" Width="75"/>
<Label x:Name="label" Content="Label"/>
<ComboBox x:Name="comboBox"/>
</Grid>
</UserControl>
Я называю UserControl в MainView как:
<ContentControl Name=" usercontrolexample01Model" Grid.Column="2" Grid.Row="1"/>
<ContentControl Name=" usercontrolexample02Model" Grid.Column="2" Grid.Row="2"/>
(я не построить Bootstrapper, потому что я думаю, что это ? не надо на мой вопрос ...)
То, что я хочу, чтобы не добавить 16 раз один и тот же код XAML в моем проекте так:
usercontrolexample01View.xaml
usercontrolexample01ViewModel.cs
usercontrolexample02View.xaml
usercontrolexample02ViewModel.cs
…
Трудно изменить 16 xaml-файлов, если я хочу что-то изменить ...
Я хочу 16 просмотров в моем MainView и 16 ViewModels (каждый раз, когда я его повторно использую в MainView), но «позади» 16 Представления должны быть всего 1 xaml-файл, который следует использовать повторно (usercontrolexampleView.xaml).
usercontrolexampleView.xaml
usercontrolexample01ViewModel.cs
usercontrolexample02ViewModel.cs
usercontrolexample03ViewModel.cs
Есть ли способ повторного использования 1 UserControl (XAML-файл) с Caliburn.Micro? Я не нашел статей об этом ... :((Есть некоторые с тем же тиллом, но у них есть другие фокусы, подобные этому thread.) Finaly Я нашел question, который больше в моем направлении .... Но как могу ли я управлять этим с помощью Caliburn? Может быть, у кого-то есть код, отрезанный с объяснениями для меня?
Я надеюсь, что мой вопрос ясен. Я просто новый для stackoverflow, wpf и caliburn micro ... И не тот, кто знаком с английским языком ... :(
Спасибо за все предложения!
Почему существует несколько виртуальных машин для одного UserControl (View)? – niksofteng
Хорошо, это может быть одна виртуальная машина для повторного использования View :). В конечном итоге каждое повторное использование представления представляет собой один клиент ... вот почему я хочу использовать много виртуальных машин. Надеюсь, это ясно? :) –
У вас одинаковый вид и различные ViewModel и поведение изменения вида на основе экземпляра класса ViewModel? –