Итак, я пробовал следующее UWP Accessing Frame for page navigation through Usercontrol an Object? Но я получаю nullpointer.Изменить страницу внутри рамки из другого класса
У меня есть главная страница с расколом, рамкой и меню для гамбургеров. Отсюда я управляю страницами, которые загружаются в фрейм.
У меня также есть профиль, и я хочу вызвать новый вид, когда пользователь нажимает кнопку. Позвольте мне добавить код:
MainPage:
public sealed partial class MainPage : Page
{
Profile profile = new Profile();
public MainPage()
{
this.InitializeComponent();
MyFrame.Navigate(typeof(Financial));
BackButton.Visibility = Visibility.Collapsed;
Title.Margin = new Thickness(68,0,0,0);
profile.OnNavigateParentReady += OnCreateUser;
}
....
public void OnCreateUser(object sender, RoutedEventArgs e)
{
if (MySplitView.Content != null)
((Frame)MySplitView.Content).Navigate(typeof(CreateUser));
Title.Text = "Create User";
BackButton.Visibility = Visibility.Visible;
Title.Margin = new Thickness(0, 0, 0, 0);
}
}
И профиль:
public sealed partial class Profile : Page
{
public delegate void MyEventHandler(object source, RoutedEventArgs e);
public event MyEventHandler OnNavigateParentReady;
private string _profileName;
private string _password;
private Dictionary<string, string> usersDictionary = new Dictionary<string, string>();
public Profile()
{
this.InitializeComponent();
usersDictionary.Add("Casper", "12345");
}
private void Login_Click(object sender, RoutedEventArgs e)
{
_profileName = ProfileName.Text;
_password = PasswordBox.Password;
if (usersDictionary.ContainsKey(_profileName))
{
if (usersDictionary[_profileName] == _password)
{
ProfileName.Text = "LOGIN SUCCES!";
}
}
else
{
}
}
private void CreateUser_Click(object sender, RoutedEventArgs e)
{
OnNavigateParentReady(sender, e);
}
}
я могу изменить кадр без проблем с помощью Frame.navigate
но я хочу, чтобы изменить название, а также края и все остальные OnCreateUser
. Как мне это сделать?
EDIT: Я должен сказать, что я получаю NullPointer на этой линии: OnNavigateParentReady(sender, e);
Он разрешил сбой, но кадр не меняется, кажется, что метод не называется должным образом. – Evilunclebill
Он используется здесь: 'profile.OnNavigateParentReady + = OnCreateUser;' – Evilunclebill
Я довольно новичок в C#. Не совсем уверен, как установить прослушиватели событий? – Evilunclebill