【发布时间】:2020-05-05 14:57:29
【问题描述】:
目标:
我的目标是将值从主窗口(即登录屏幕)传递到其他用户控制表单。
这是 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 指向特定的 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 窗口?
【问题讨论】:
-
您要传输
TextBox控件或其文本值吗?视图后面是否有一个模型来保存用户名? -
@Ackdari 文本值 - 一秒钟我也注意到了我的问题中的错误。
-
@Ackdari 不,我没有。在我发现 WPF 之前一直专注于 Windows 窗体——这对我来说似乎很困惑如何将数据传输到其他窗体。而 Win 表格要简单得多。
-
在谷歌上搜索 MVVM