Я пытаюсь понять структуру призмы C# и сделать небольшой проект. Я столкнулся с проблемой непонимания концепции Prism. Я объясню, что я хочу сделать, что я пробую, мой код:
Я хочу сделать простое приложение, например тест с 5 случайными вопросами. Вы выбираете сложный тест после того, как нажимаете кнопку «Старт». В этом же окне ваша страница меняется с первым вопросом. Выберите правильный ответ, далее и вы go на второй странице со вторым вопросом. Из второго вопроса у вас есть 2 кнопки (предыдущая и следующая), следующая следующая следующая, fini sh и у вас есть сообщение типа «вы получили x / 5 баллов». У меня есть аналогичное приложение, но в качестве фреймворка используется Caliburn. Первое приложение Я хочу сейчас поместить все вопросы в файл xaml.
Что я пробую: я следую документации, обучаю по YouTube в течение 2 дней. Создаю 2 папки: View и ViewModel. Создайте MainPage.xaml как окно в View, а в ViewModel я создаю MainPageViewModel, в файле MainPage.cs я создаю один экземпляр, например:
MainPageViewModel main = new MainPageViewModel();
После этого я создаю кнопку, я проверяю кнопку и работаю. Теперь я хочу создать страницу для подключения к окну MainPageViewModel. На странице я хочу создать еще одну кнопку, и я хочу проверить, работает ли она. Но это шаг, как нельзя создавать.
После нескольких руководств я не могу этого сделать. Не работает подключение к файлу xaml MainPageViewModel.
MainPage:
<Window x:Class="Aplicatie2._0.View.MainPage"
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"
xmlns:prism="http://prismlibrary.com/"
xmlns:local="clr-namespace:Aplicatie2._0.View"
prism:ViewModelLocator.AutoWireViewModel="True"
mc:Ignorable="d"
Title="{Binding Title}" Height="450" Width="800">
<Window.DataContext>
</Window.DataContext>
<Grid>
</Grid>
</Window>
Error MC3063: Property 'DataContext' does not have a value. Line 14 Position 30.
MainPageViewModel:
using Prism.Mvvm;
using Prism.Navigation;
using Prism.Commands;
namespace Aplicatie2._0.ViewModel
{
class MainPageViewModel : BindableBase
{
private string _Title = "Test";
public string Title
{
get
{
return _Title;
}
set
{
SetProperty(ref _Title, value);
}
}
}
}
App.xaml:
<prism:PrismApplication x:Class="Aplicatie2._0.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:prism="http://prismlibrary.com/"
xmlns:local="clr-namespace:Aplicatie2._0">
<Application.Resources>
</Application.Resources>
</prism:PrismApplication>
App.xaml.cs:
using Prism.Modularity;
using Prism.Ioc;
using System.Windows;
using System.ComponentModel;
using Prism.Unity;
using Aplicatie2._0.View;
namespace Aplicatie2._0
{
public partial class App : PrismApplication
{
protected override Window CreateShell()
{
return Container.Resolve<MainPage>();
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
containerRegistry.RegisterForNavigation<MainPage>("MainPage");
}
}
}
1) Как я могу создать несколько страниц и как подключиться к главному окну? (Если я вызываю page1, я хочу быть очищенным, чтобы создать кнопку и Radiobutton на page) 2) Как я могу подключить файл ViewModel к файлу View на xaml без создания экземпляра? 3) Как я могу создать один вопрос в xaml, например:
Question: This is first question
[] Answer1
[] Answer2
[] Answer3
Если вы можете привести мне пример, он идеален, но упростите.