簡體   English   中英

如何將主 WIndow 文本框的值傳遞給其他用戶控件?

[英]How to pass value from Main WIndow textbox to other User Control?

目標:

我的目標是將值從主 window 即登錄屏幕傳遞到其他用戶控件 forms。

這是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();
        }
    }
}

它打開了儀表板 我現在有一個指向特定User Control forms 的ListViewMenu ,並在儀表板上打開。

打開不同用戶控件的代碼

   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?

在您的儀表板 class 中添加字符串屬性並將其傳遞給該屬性不是很容易 - 比如:

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

然后您可以將相同的字符串值傳遞給其他控件。 當然,理想情況下,您將實現 MVVM 模式並使用綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM