wpf数据单向绑定
代码展示
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.InteropServices;
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_login
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window,INotifyPropertyChanged
{
public MainWindow()
{
InitializeComponent();
this.DataContext = this;
}
public string _userName;
public string _password;
public string userName
{
get { return _userName; }
set { _userName = value;
RaisePropertyChanged("userName");
}
}
public string pwd
{
get { return _password; }
set
{
_password = value;
RaisePropertyChanged("pwd");
}
}
//声明事件
public event PropertyChangedEventHandler PropertyChanged;
//引发事件的方法:
// RaisePropertyChanged 方法接受一个字符串参数 PropertyName,表示发生变化的属性名。
//方法首先获取 PropertyChanged 事件的当前值(防止在调用时被其他线程修改)。
//如果有订阅者(handler 不为 null),则通过调用 handler 触发 PropertyChanged 事件,通知所有订阅者指定的属性已发生变化。
public void RaisePropertyChanged(string PropertyName)
{
PropertyChangedEventHandler handler= PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(PropertyName));
}
}
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (userName != "666"&&pwd !="666")
{
MessageBox.Show("账号错误");
userName = "";
pwd = "";
return;
}
else
{
MessageBox.Show("登录成功");
}
}
}
}
截图