Я играю с Caliburn Micro в течение некоторого времени.Caliburn Micro, динамически загруженные виды/режимы просмотра
Приложение, в котором я работаю, состоит из MainAppView, MainAppMenuView и MainAppContentView. С соответствующими ViewModels. Все это прекрасно работает.
Теперь в MainAppContentView я хочу показать несколько элементов UserControl, которые выглядят как Windows 8 Startscreen Tiles, динамически. Значит, пользователь должен иметь возможность выбирать, что будет показывать приложение UserControl, из списка ListBox.
Для этого я создаю несколько видов и представлений. И теперь у вас есть коллекция различных плиток, которые пользователь может выбрать.
мысль была иметь Tile модель:
namespace CaliburnMicro.Test.Model
{
public class Tile
{
public int ID { get; set; }
public string View { get; set; }
public List<string> Views { get; set; }
public string TileSize { get; set; }
}
}
А потом решить, что View/ViewModel, чтобы показать из свойства Tile.View или Tile.Views.
Есть ли у кого-нибудь идеи о том, как это можно выполнить с помощью Caliburn Micro?
Я попытался решить ее в DataTemplate она позволяет так:
<DataTemplate>
<Grid Margin="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="50*" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding ID}" FontWeight="Bold" />
<TextBox Grid.Column="1" Text="{Binding ID }" />
<ContentControl Grid.Column="2" cal:View.Model="{Binding View}" />
</Grid>
</DataTemplate>
Идеи, Линка к образцам или что-нибудь ... был бы весьма признателен.
Все ли плитки будут разделять одно и то же поведение (просто выглядит по-другому), или вам потребуется отдельный «ViewModel» для каждого? – Chris
Привет Все плитки будут иметь один вид и один viewModel каждый. Но какой вид и ViewModel, что покажет spesific tile, должны быть определены в Tile Object. Моя мысль заключается в том, что объект Tile просто определяет пропозиции плитки как, размер, цвет, вид или виды, isSelected ... и далее. Хотя содержимое плитки будет представлением с его viewModel, и это представление/данные никоим образом не связаны с объектом tile/tile. – dlilleaa