Как передать значение из текстового поля Main WIndow в другой пользовательский элемент управления? - PullRequest
0 голосов
/ 04 мая 2020

Цель:

Я хочу передать значение из главного окна, то есть с экрана входа в систему, в другие формы пользовательского контроля.

Это MainWindow. Xaml.cs

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void CloseButton_Click(object sender, RoutedEventArgs e)
    {
        this.Close();
    }


    private void btnLogin_Click(object sender, RoutedEventArgs e)
    {

        string connString = ConfigurationManager.ConnectionStrings["Technical_Application.Properties.Settings.ConnectionString"].ConnectionString;
        string query = "SELECT count(*) from users where username = '" + txtUsername.Text + "' and password = MD5('" + txtPassword.Password + "')";

        using (var conn = new MySqlConnection(connString))
        {
            conn.Open();
            using (var cmd = new MySqlCommand(query, conn))
            {
                int count = Convert.ToInt32(cmd.ExecuteScalar());
                if(count == 1)
                {
                    Dashboard dashboard = new Dashboard();
                    dashboard.Show();
                    this.Close();
                }
                else
                {
                    MessageBox.Show("Username or Password unvalid", "Login Error", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            conn.Close();
        }
    }
}

Открывается панель инструментов . Теперь у меня есть ListViewMenu, направленный на указание c User Control форм, и он открывается на панели инструментов.

Код для открытия различных пользовательских элементов управления

   private void ListViewMenu_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        int index = ListViewMenu.SelectedIndex;
        MoveCursorMenu(index);

        switch (index)
        {
            case 0:
                GridPrincipal.Children.Clear();
                GridPrincipal.Children.Add(new UserControlMain());

                break;
            case 1:
                GridPrincipal.Children.Clear();
                GridPrincipal.Children.Add(new UserControl1());
                break;
            default:
                break;
        }

    }

Вопрос:

С MainWindow текстовое поле с именем txtUsername как я могу передать текстовое значение другому UserControl windows?

1 Ответ

0 голосов
/ 05 мая 2020

Не было бы легко добавить строковое свойство в ваш класс Dashboard и передать его в него, например:

Dashboard dashboard = new Dashboard();
dashboard.UserName = txtUsername.Text;

Затем вы можете передать то же строковое значение другим элементам управления. Конечно, в идеале вы должны реализовать шаблон MVVM и использовать привязки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...