В части 2 минуты значения 9:15 помещаются в поля ввода имени пользователя и пароля. , а затем следует вход в систему.
Когда я пытаюсь сделать то же самое, с кнопкой входа в систему ничего не происходит.
Просматривая журнал вывода, я обнаруживаю следующее предупреждение компиляции:
Microsoft.Maui.Controls.Xaml.Diagnostics.BindingDiagnostics: Предупреждение: свойство «LoginCommand» не найдено в «MyAdministrationApp.Viewmodes.LoginPageViewModes» , целевое свойство: 'Microsoft.Maui.Controls.Button.Command'
Ниже приведен код .cs
Код: Выделить всё
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using MyAdministrationApp.Models;
using MyAdministrationApp.Services;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
using Newtonsoft.Json;
using MyAdministrationApp.Views;
namespace MyAdministrationApp.Viewmodes
{
public partial class LoginPageViewModes : BaseViewModel
{
[ObservableProperty]
private string _userName;
[ObservableProperty]
private string _password;
readonly LoginRepository loginRepository= new LoginService();
[RelayCommand]
public async Task LoginCommand()
{
Console.WriteLine("Sign In button pressed");
if (!string.IsNullOrWhiteSpace(UserName ) && !string.IsNullOrWhiteSpace(Password))
{
UserInfo userInfo = await loginRepository.Login(UserName, Password);
if (Preferences.ContainsKey(nameof(App.UserInfo)))
{
Preferences.Remove(nameof(App.UserInfo));
}
string userDetails = JsonConvert.SerializeObject(userInfo);
Preferences.Set(nameof(App.UserInfo), userDetails);
App.UserInfo = userInfo;
await Shell.Current.GoToAsync($"//{nameof(HomePage)}");
}
}
}
}
Код: Выделить всё
using MyAdministrationApp.Viewmodes;
namespace MyAdministrationApp;
public partial class LoginPage : ContentPage
{
public LoginPage(LoginPageViewModes loginPageViewModes)
{
InitializeComponent();
this.BindingContext = loginPageViewModes;
}
}
Код: Выделить всё
Код: Выделить всё
public ICommand LoginCommand { get; set; }
public LoginPageViewModes()
{
LoginCommand = new Command(OnLogin);
}
private void OnLogin()
{
//Same code as in LoginCommand
}
Код должен просто проверить, не являются ли оба поля ввода «черными», а затем, при нажатии на знак в кнопке. Следует перейти на следующую страницу.
Я новичок в .NET Maui.
Буду очень благодарен за любую помощь!.
Подробнее здесь: https://stackoverflow.com/questions/790 ... ageviewmod
Мобильная версия