WPF控件:密码框绑定MVVM

这篇具有很好参考价值的文章主要介绍了WPF控件:密码框绑定MVVM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

以下是一种使用 MVVM 模式的方法:

  1. 首先,在 ViewModel 中添加一个属性来保存密码,我们可以使用 SecureString 类型。
 // 密码变量
 private SecureString _password;

 // 密码属性,用于获取和设置密码
 public SecureString Password
 {
     get
     {
         return _password;
     }
     set
     {
         // 如果新值与旧值不同
         if (_password != value)
         {
             // 更新密码
             _password = value;
             // 触发属性更改通知,通知UI层密码已更改
             RaisePropertyChanged(nameof(Password));
         }
     }
 }

 文章来源地址https://www.toymoban.com/news/detail-857004.html

  1. 创建一个附加属性来处理 PasswordBox 的密码变化,并将其绑定到 ViewModel 中的命令。
 public ICommand PasswordChangedCommand => new DelegateCommand<object>(PasswordChanged);

  private void PasswordChanged(object parameter)
  {
      var passwordBox = parameter as PasswordBox;
      if (passwordBox != null)
      {
          // 设置 ViewModel 中的密码属性
          Password = passwordBox.SecurePassword;
      }
  }

 

  1. 在 XAML 中,使用行为触发器来触发命令。
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
<PasswordBox
    x:Name="PasswordBox"
    Height="45"
    Margin="5"
    FontSize="20"
    FontWeight="Thin">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="PasswordChanged">
            <i:InvokeCommandAction Command="{Binding PasswordChangedCommand}" CommandParameter="{Binding ElementName=PasswordBox}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</PasswordBox>
  1. 查看密码框的内容。
MessageBox.Show(SecureStringToString(Password));
/// <summary>
/// 将 SecureString 类型的数据转换为普通的字符串类型。
/// </summary>
/// <param name="secureString">要转换的 SecureString 对象。</param>
/// <returns>转换后的字符串,如果转换失败则返回空字符串。</returns>
private string SecureStringToString(SecureString secureString)
{
    // 初始化指针
    IntPtr ptr = IntPtr.Zero;
    try
    {
        // 将 SecureString 转换为指针
        ptr = Marshal.SecureStringToGlobalAllocUnicode(secureString);

        if (ptr != IntPtr.Zero)
        {
            // 将指针中的数据复制到一个普通的字符串
            return Marshal.PtrToStringUni(ptr);
        }
        else
        {
            return string.Empty;
        }
    }
    catch (Exception ex)
    {
        // 处理异常
        Console.WriteLine($"转换 SecureString 出错:{ex.Message}");
        return string.Empty;
    }
    finally
    {
        // 清除内存中的敏感数据
        if (ptr != IntPtr.Zero)
        {
            Marshal.ZeroFreeGlobalAllocUnicode(ptr);
        }
    }
}

 

 

 

到了这里,关于WPF控件:密码框绑定MVVM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WPF MVVM基础教程(三)命令/事件的绑定

    除了数据绑定,mvvm中更重要的另一块就是命令和事件的绑定,wpf中关于按钮 Button 、菜单项 MenuItem 等关于点击交互的事件,可以通过命令 Command 在ViewModel 中实现。 示例:在Button上绑定命令 在ViewModel中添加命令和具体执行的内容 在Button上进行绑定 运行: 执行后: 在 Button

    2024年02月09日
    浏览(46)
  • WPF入门教程系列二十八 ——DataGrid使用示例MVVM模式(5)

    WPF入门教程系列目录 WPF入门教程系列二——Application介绍 WPF入门教程系列三——Application介绍(续) WPF入门教程系列四——Dispatcher介绍 WPF入门教程系列五——Window 介绍 WPF入门教程系列十一——依赖属性(一) WPF入门教程系列十五——WPF中的数据绑定(一)           通过上面

    2024年02月08日
    浏览(35)
  • WPF入门教程系列二十七 ——DataGrid使用示例MVVM模式(4)

    WPF入门教程系列目录 WPF入门教程系列二——Application介绍 WPF入门教程系列三——Application介绍(续) WPF入门教程系列四——Dispatcher介绍 WPF入门教程系列五——Window 介绍 WPF入门教程系列十一——依赖属性(一) WPF入门教程系列十五——WPF中的数据绑定(一)       计算机界的顶

    2024年02月07日
    浏览(40)
  • WPF入门教程系列二十九 ——DataGrid使用示例MVVM模式(7)

    WPF入门教程系列目录 WPF入门教程系列二——Application介绍 WPF入门教程系列三——Application介绍(续) WPF入门教程系列四——Dispatcher介绍 WPF入门教程系列五——Window 介绍 WPF入门教程系列十一——依赖属性(一) WPF入门教程系列十五——WPF中的数据绑定(一)   接上文 WPF入门教程

    2024年02月10日
    浏览(46)
  • WPF入门教程系列二十八 ——DataGrid使用示例MVVM模式(6)

    WPF入门教程系列目录 WPF入门教程系列二——Application介绍 WPF入门教程系列三——Application介绍(续) WPF入门教程系列四——Dispatcher介绍 WPF入门教程系列五——Window 介绍 WPF入门教程系列十一——依赖属性(一) WPF入门教程系列十五——WPF中的数据绑定(一)       7.上面Buttom的

    2024年02月09日
    浏览(39)
  • WPF MvvM框架(MvvMLight,Microsoft Toolkit Mvvm,CommunityToolkit.Mvvm;鼠标,键盘,手写等事件绑定如:抬起按下事件)

    目录 1.MvvMLight(已废弃) 2. Microsoft Toolkit Mvvm(已废弃)  3.CommunityToolkit.Mvvm框架 4.Mvvm中的事件绑定 4.1 DataGrid表中按钮点击事件 4.2 绑定 鼠标事件,键盘事件,手写笔事件,多点触控事件 5.和PLC设备建立联系(联调)    本文中,继承接口,同步数据方法,command用法均一致; 1.继

    2024年02月04日
    浏览(61)
  • 工控视觉项目桌面端WPF源码,UI源码,已实现前后端MVVM数据绑定

    工控视觉项目桌面端WPF源码,UI源码,已实现前后端MVVM数据绑定。 除了两个柱状图用的第三方开源控件,其他都是原生自己写的,非常适合初学者熟悉语法、事件、触发器、MVVM 机制、布局容器,方便二次开发和修改 工控视觉项目桌面端WPF源码,UI源码,已实现前后端MVVM数据

    2024年02月20日
    浏览(45)
  • WPF 控件CommandParameter绑定多个参数

    新建一个类,继承IMultiValueConverter xaml中添加引用 xmlns:{wpfbd}=\\\"clr-namespace:{新建类所在的命名空间}\\\" 添加完重新生成一次 添加资源 为控件添加参数 在View Model中使用多个参数

    2024年02月09日
    浏览(41)
  • 循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(3)--自定义用户控件

    在我们创建界面元素的时候,不管在Vue3+ElementPlus的前端上,还是Winform桌面端上,都是会利用自定义用户控件来快速重用一些自定义的界面内容,对自定义用户控件的封装处理,也是我们开发WPF应用需要熟悉的一环。本篇随笔继续深入介绍介绍基于CommunityToolkit.Mvvm 和HandyCont

    2024年02月09日
    浏览(58)
  • 一文搞懂Vue的MVVM模式与双向绑定

    v-model 是 Vue.js 框架中用于实现双向数据绑定的指令。它充分体现了 MVVM(Model-View-ViewModel)模式中的双向数据绑定特性。下面我们将详细解释 v-model 如何体现 MVVM 和双向绑定: MVVM 模式是一种软件架构设计模式,它将应用程序分为三个部分: Model(模型) :代表应用程序的数

    2024年03月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包