登录数据绑定
1.首先在LoginViewModel 登录逻辑处理类中,创建登录要绑定属性和命令

public class LoginViewModel : BindableBase, IDialogAware
{
public LoginViewModel()
{
ExecuteCommand = new DelegateCommand<string>(Execure);
}
public string Title { get; set; } = "ToDo";
public event Action<IDialogResult> RequestClose;
public DelegateCommand<string> ExecuteCommand { get; private set; }
private string account;
public string Account
{
get { return account; }
set { account = value; RaisePropertyChanged(); }
}
private string passWord;
public string PassWord
{
get { return passWord; }
set { passWord = value; RaisePropertyChanged(); }
}
public bool CanCloseDialog()
{
return true;
}
public void OnDialogClosed()
{
}
public void OnDialogOpened(IDialogParameters parameters)
{
}
private void Execure(string obj)
{
switch (obj)
{
case "Login":
Login();
break;
case "LoginOut":
LoginOut();
break;
}
}
void Login()
{
}
void LoginOut()
{
}
}
2.属性和命令创建完成后,在前端LoginView.xaml 中,需要对登录按钮和输入框进行绑定后台对应的属性以及命令(进行数据绑定)
2.1 创建密码框附加属性类(PassWordExtensions)
2.2 密码输入框 (PasswordBox) 中绑定附加属性类
3. LoginView.xaml 完整示例代码
<UserControl x:Class="MyToDo.Views.Dialog.LoginView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:MyToDo.Views.Dialog"
xmlns:md="http://materialdesigninxaml.net/winfx/xaml/themes"
xmlns:prism="http://prismlibrary.com/"
xmlns:pass="clr-namespace:MyToDo.Extensions"
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
mc:Ignorable="d"
Height="350" Width="600">
<prism:Dialog.WindowStyle>
<Style TargetType="Window">
<Setter Property="Width" Value="600"/>
<Setter Property="Height" Value="350"/>
<Setter Property="SizeToContent" Value="WidthAndHeight"/>
<Setter Property="ResizeMode" Value="NoResize"/>
<Setter Property="prism:Dialog.WindowStartupLocation" Value="CenterScreen"/>
</Style>
</prism:Dialog.WindowStyle>
<Grid Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1.5*"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Image Source="/Images/login.png" Margin="50"/>
<DockPanel Grid.Column="1" VerticalAlignment="Center" Margin="15">
<TextBlock Text="欢迎使用" FontSize="22" FontWeight="Bold" Margin="0,10" DockPanel.Dock="Top"/>
<TextBox Margin="0,10" md:HintAssist.Hint="请输入账号" DockPanel.Dock="Top"
Text="{Binding Account}"/>
<PasswordBox Margin="0,10" md:HintAssist.Hint="请输入密码" DockPanel.Dock="Top"
pass:PassWordExtensions.PassWord="{Binding PassWord,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<i:Interaction.Behaviors>
<pass:PassWordBehavior/>
</i:Interaction.Behaviors>
</PasswordBox>
<Button Content="登录系统" DockPanel.Dock="Top"
Command="{Binding ExecuteCommand}" CommandParameter="Login"/>
<DockPanel LastChildFill="False" Margin="0,10">
<TextBlock Text="注册账户"/>
<TextBlock Text="忘记密码?" DockPanel.Dock="Right"/>
</DockPanel>
</DockPanel>
</Grid>
</UserControl>