Я пытаюсь преобразовать следующий код для использования в шаблоне MVVM с Caliburn.Micro.
Без MVVM, когда я щелкаю элемент ListViewItem, создается новый UserControl и добавляется в качестве дочернего объекта в мою MainGrid.
Как я могу сделать то же самое, используя Caliburn.Micro?
<ListView x:Name="ListViewMenu" Foreground="#FFFF00" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListViewItem x:Name="ItemHome" Height="60">
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="ViewDashboard" Height="25" Width="25" Margin="10"/>
<TextBlock Text="Home" VerticalAlignment="Center" Margin="20 10"/>
</StackPanel>
</ListViewItem>
<ListViewItem Height="60">
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon x:Name="LoadEditIncidentPage" cal:Message.Attach="LoadEditIncidentPage" Kind="Pencil" Height="25" Width="25" Margin="10"/>
<TextBlock Text="Edit Incidents" VerticalAlignment="Center" Margin="20 10"/>
</StackPanel>
</ListViewItem>
<ListViewItem Height="60">
<StackPanel Orientation="Horizontal">
<materialDesign:PackIcon Kind="Ticket" Height="25" Width="25" Margin="10"/>
<TextBlock Text="Tickets" VerticalAlignment="Center" Margin="20 10"/>
</StackPanel>
</ListViewItem>
</ListView>
Код без MVVM:
private void ListViewMenu_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
UserControl userControl = null;
// GridMain.Children.Clear();
switch (((ListViewItem)((ListView)sender).SelectedItem).Name)
{
case "ItemHome":
userControl = new Dashboard();
GridMain.Children.Add(userControl);
CardText.Text = "Test1";
break;
case "ItemCreate":
CardText.Text = "Test2";
break;
case "Completer":
CardText.Text = "Test2";
Clipboard.SetText(CardText.Text);
break;
default:
break;
}
}