WPF中,如何使窗口與窗口之間進行值的傳遞呢?
如果窗口A要傳遞一個值給窗口B。那麼就在窗口A上,賦值給窗口B的屬性上。
實例如下:
主窗口MainWindow.xaml
<Grid>
<TextBlock HorizontalAlignment="Left" Margin="139,67,0,0" TextWrapping="Wrap" Text="用戶名" VerticalAlignment="Top"/>
<TextBox Name="txtUserName" HorizontalAlignment="Left" Height="23" Margin="252,64,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="120"/>
<TextBlock HorizontalAlignment="Left" Margin="139,134,0,0" TextWrapping="Wrap" Text="密 碼" VerticalAlignment="Top" Height="17"/>
<PasswordBox Name="pwdPassword" HorizontalAlignment="Left" Margin="252,134,0,0" VerticalAlignment="Top" Width="120"/>
<Button Name="btnLogin" Content="登 錄" HorizontalAlignment="Left" Margin="231,222,0,0" VerticalAlignment="Top" Width="75" Click="btnLogin_Click"/>
</Grid>
主窗口的後臺代碼(其實就是一個Button事件)
private void btnLogin_Click(object sender, RoutedEventArgs e)
{
if (txtUserName.Text.Length <= 0 || pwdPassword.Password.Length <= 0)
{
Button btn = (Button) sender;
btn.Content = "內容不能爲空";
}
if (txtUserName.Text != "admin" && pwdPassword.Password != "123456")
{
MessageBox.Show("用戶名或者密碼錯誤");
return;
}
else
{
Index index=new Index();
index.Username = txtUserName.Text;
index.ShowDialog();
}
}
傳遞值的窗口index
前臺代碼(一個Label)
<span style="white-space:pre"> </span><Label Name="labName" Content="Label" HorizontalAlignment="Left" Margin="44.724,50,0,0" VerticalAlignment="Top"/>
後臺代碼
public string Username { get; set; }
public Index()
{
InitializeComponent();
}
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
labName.Content = "歡迎你"+Username+"先生";
}
解析:
MainWindow的用戶名,是通過Index的屬性(Username)來,存儲傳遞過來的值。