Logowanie xaml /C#

0

Cześć, jestem nowy w programowaniu.

Mam ekran xaml w nim

TextBox "login"
TextBox "password"
Button "zaloguj"

i mam kod w .cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WPF_Michael.Pages
{
    /// <summary>
    /// Logika interakcji dla klasy LoginPage.xaml
    /// </summary>
    public partial class LoginPage : Page
    {


        #region  ✔ ► public_constructors
        public LoginPage()
        {
            InitializeComponent();
        }
        #endregion  ✔ ► public_constructors

        #region  ✔ ► user_interface

        private void Zaloguj_Button_Click(object sender, RoutedEventArgs e)
        {
            if (  LoginText.Text = User. )   //tutaj nie wiem co dalej
        }
        #endregion  ✔ ► user_interface

        #region  ✔ ► sign_in

        #region _____class_user

        //class User
        public class User
        {
            // parameters
            public User(int id, string name, string password)
            {
                Id = id;
                Name = name;
                Password = password;
            }

            // properties
            public int Id { get; set; }
            public string Name { get; set; }
            public string Password { get; set; }
        }
        #endregion _____class_user

        #region _____field_users
        // List of objects that can be accessed by index. 
        // Provides methods to search, sort and manipulate lists.
        public List<User> Users;
        #endregion _____field_users

        #region _____method_init_user_list

        // method 
        private void init_user_list()
        {
            // Field Users - list of users (from class User)
            Users = new List<User>
            {
                new User(1, "admin", "123"),
                new User(2, "operator", "456"),
                new User(3, "serwis", "789")
            };
        }
        #endregion _____method_init_user_list

        #endregion  ✔ ► sign_in
    }
}

kwestia taka że nie wiem jak odczytac dane z TextBox co wpisał użytkownik i porównać z obiektami User, które stworzyłem, mógłby ktoś z dobrym sercem poratować? Będzie wdzięczny! :)

0

W konstruktorze wywołaj init_user_list()
Następnie ten if powinien wyglądać mniej-więcej tak:

(Users.Any(u => u.Login == LoginText.Text && u.Password == PasswordText.Text)) {
  //Nowe okno + ukrycie obecnego.
}
0

Nie pokazuj mu Linq, bo zaraz się w ogóle załamie :)

Po pierwsze, są dwa podobne operatory:
= operator przypisania, np:
int zmienna = 5;

== operator porównania, np:
if(a == b)...

Operatora przypisania używasz wtedy, kiedy chcesz przypisać wartość do zmiennej. Operator porównania, kiedy chcesz porównać dwie wartości.

Twoja klasa User zawiera różne właściwości, m.in. Name.
A więc przede wszystkim musisz PORÓWNAĆ, czy to, co wpisał user w edicie jest równe temu, co jest nazwie użytkownika.
Musisz też sprawdzić hasło w analogiczny sposób.
Oczywiście najpierw musisz wypełnić listę użytkowników, tak jak napisał @Deltech. Gdybyś pisał program samodzielnie od początku byłoby prościej :)

Musisz użyć też pętli (albo Linq, jak proponuje @Deltech, jednak Linq na Twoim poziomie może być zbyt ciężkie do ogarnięcia) do sprawdzenia, który użytkownik się loguje.

0

ok działa, mogę jak złe hasło dać:
MessageBox.Show("Login lub hasło jest nie prawidłowe, prosimy spróbować jeszcze raz :) ");

ale chcaiłbym za pomocą xamalina użyc funkcji DisplayAlert ale mi nie działa, nie wyszukuje wgl takiej funkcji, {does not exist in the current }
mam vs 2019 i użyte using xamarin.form;, ktoś coś wie na ten temat?

System.InvalidOperationException: 'You MUST call Xamarin.Forms.Init(); prior to using it.'

i jeszcze jedno pytanie

jak mam ukryć stronę, ponieważ this.Hide(); nie działa

0

le chcaiłbym za pomocą xamalina użyc funkcji DisplayAlert ale mi nie działa, nie wyszukuje wgl takiej funkcji, {does not exist in the current }
mam vs 2019 i użyte using xamarin.form;, ktoś coś wie na ten temat?
System.InvalidOperationException: 'You MUST call Xamarin.Forms.Init(); prior to using it.'

Ale to jest normalna aplikacja WPF, czy aplikacja Xamarin.Forms zrobiona dla WPF? DisplayAlert jest jedną z metod, które używasz w kodzie wspólnym aplikacji, nie w kodzie konkretnej platformy.

W Xamarin.Forms musisz mieć Xamarin.Forms.Init(); zrobione jakoś w miarę możliwości na początku Twojego kodu dla konkretnej platformy. Na przykład w aplikacjach dla Androida to jest od razu w OnCreate głównej aktywności.

0

używam WPF App (.Net Framework)
próbowałem Xamarin.Forms.Init(); i nie znajduje mi ostatniego słowa czyli .Init "does not exist in the namespace xamalin.forms"
czyli nie mogę tego użyć?

co do przełączania stron

str startową dałem jako logowanie i jest w xaml oznaczona <Page> jak zmieniam na <Window> mam błędy w klasie w .cs {partial declarations of loginPage must not specify different base classes}, strona druga jest <Window>, przy page nie reagują mi komendy WindowStyle="x" i AllowsTransparency="x"

i jeszcze jedno pytanie jaką komendą zmaksymalizować okno window przy wykonywaniu loaded? i czy powinno się to robić przy loaded

1 użytkowników online, w tym zalogowanych: 0, gości: 1