1、继承属性变化接口
csharp
public partial class MainWindow : Window, INotifyPropertyChanged
{
// 通知界面属性发生变化
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if(handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
2.创建被绑定属性
csharp
// 创建被绑定的属性
private string _userName;
public string UserName
{
get { return _userName; }
set { _userName = value;
// 通知界面 属性发生变化
RaisePropertyChanged("UserName");
}
}
3.界面绑定属性
html
<!-- 绑定代码中的属性 UserName -->
<TextBox Text="{Binding UserName}" Grid.Row="0" Grid.Column="1" Margin="2"/>
4.界面数据关联属性
csharp
public MainWindow()
{
InitializeComponent();
// 为界面设置 绑定数据
this.DataContext = this;
}
5.使用绑定属性
csharp
// 获取界面输入
if (UserName == "WPF" && passWord == "123")
{ // 弹出一个新的界面 ctrl+ k + d
//MessageBox.Show("OK");
IndexWindow indexWindow = new IndexWindow();
indexWindow.Show();
// 隐藏登录界面
this.Hide();
}
else
{// 警告框
MessageBox.Show("输入的用户名或密码不正确");
//txtUserName.Text = "";
// 清空界面数据
UserName = "";
txtPassword.Text = "";
}
完整代码
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
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_LoginUI
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window, INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
// 为界面设置 绑定数据
this.DataContext = this;
}
// 创建被绑定的属性
private string _userName;
public string UserName
{
get { return _userName; }
set { _userName = value;
// 通知界面 属性发生变化
RaisePropertyChanged("UserName");
}
}
// 被用来 界面绑定的属性
//public string UserName { get; set; } = "WPF";
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if(handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
/// <summary>
/// 按钮 登录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnLogin_Click(object sender, RoutedEventArgs e)
{
//string userName = txtUserName.Text;
string passWord = txtPassword.Text;
if (UserName == "WPF" && passWord == "123")
{ // 弹出一个新的界面 ctrl+ k + d
//MessageBox.Show("OK");
IndexWindow indexWindow = new IndexWindow();
indexWindow.Show();
// 隐藏登录界面
this.Hide();
}
else
{// 警告框
MessageBox.Show("输入的用户名或密码不正确");
//txtUserName.Text = "";
UserName = "";
txtPassword.Text = "";
}
}
}
}