当前位置: 首页 > news >正文

怎么查询网站开通时间宁波网站制作与推广价格

怎么查询网站开通时间,宁波网站制作与推广价格,电子商务网站建设实践报告,wordpress 2 s界面参数的传递,界面参数是如何从前台传送到后台的。 param 参数是从界面传递到命令的。这个过程通常涉及以下几个步骤: 数据绑定:界面元素(如按钮)的 Command 属性绑定到视图模型中的 RelayCommand 实例。同时&#x…

界面参数的传递,界面参数是如何从前台传送到后台的。

param 参数是从界面传递到命令的。这个过程通常涉及以下几个步骤:

  1. 数据绑定:界面元素(如按钮)的 Command 属性绑定到视图模型中的 RelayCommand 实例。同时,界面元素的 CommandParameter 属性(如果有的话)可以绑定到视图模型中的某个属性或直接设置为一个静态值。这个 CommandParameter 就是传递给 RelayCommand 的 param 参数。

  2. 命令触发:当用户与界面元素交互(例如点击按钮)时,会触发绑定的命令。WPF 框架会调用命令的 Execute 方法(如果命令可执行)或 CanExecute 方法(以检查命令是否可执行)。

  3. 参数传递:在命令触发时,CommandParameter 的值被传递给命令的 Execute 和 CanExecute 方法作为 param 参数

  4. 参数使用:在 RelayCommand 的 lambda 表达式中,param 被转换为 ViewModel 类型(这里假设传递的参数实际上是 ViewModel 类型的实例或可以安全地转换为 ViewModel 类型)。然后,这个转换后的 ViewModel 实例被传递给 SaveUser 方法或 IsUserSaveEnabled 方法。

  5. 属性访问:在 SaveUser 或 IsUserSaveEnabled 方法中,就可以安全地访问 ViewModel 实例的属性,如 UserName。由于这些方法接收的是已经转换为正确类型的 ViewModel 实例,因此可以直接读取其属性。

一开始无法点击登录

然后点击账户历史自动填入

填入其他内容后再点击登录,账户历史会更新

ViewModel代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;namespace Icommand练习
{class ViewModel:INotifyPropertyChanged{private string _userName;public string UserName{get { return _userName; }set { _userName = value; OnPropertyChanged(nameof(UserName)); }}private string _email;public string Email{get { return _email; }set { _email = value; OnPropertyChanged(nameof(Email)); }}private string _tempUserName;public string TempUserName{get { return _tempUserName; }set { _tempUserName = value; }}private string _tempEmail;public string TempEmail{get { return _tempEmail; }set { _tempEmail = value; }}public ICommand SaveCommand { get; private set; }public ViewModel(){SaveCommand = new RelayCommand(param => SaveUser((ViewModel)param), param => IsUserSaveEnabled((ViewModel)param));Button2Command=new RelayCommand(param => Button2Click(), param=>true);this.TempUserName = "网易";this.TempEmail = "123456@163.com";}private void SaveUser(ViewModel user){// 在这里实现保存用户的逻辑,比如调用API或保存到数据库// 这里只是简单打印用户信息MessageBox.Show($"Saving user: UserName={user.UserName}, Email={user.Email}");user.TempUserName = _userName;user.TempEmail = _email;}private bool IsUserSaveEnabled(ViewModel viewModel){if (viewModel == null){// 如果 param 不是 ViewModel 类型或者为 null,则返回 falsereturn false;}// 现在可以安全地访问 viewModel.UserNamereturn !string.IsNullOrEmpty(viewModel.UserName);}public ICommand Button2Command {  get; }public void Button2Click(){UserName = TempUserName;Email = TempEmail;}//固定public event PropertyChangedEventHandler PropertyChanged;protected void OnPropertyChanged([CallerMemberName] string propertyName = null){PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));}}//public class RelayCommand : ICommand//{//    private readonly Action<object> _execute;//    public event EventHandler CanExecuteChanged;//    public RelayCommand(Action<object> execute) => _execute = execute;//    public bool CanExecute(object parameter) => true; // 总是可执行(简化)//    public void Execute(object parameter) => _execute(parameter);//}public class RelayCommand : ICommand{private readonly Action<object> _execute;private readonly Func<object, bool> _canExecute;public RelayCommand(Action<object> execute, Func<object, bool> canExecute = null){_execute = execute ?? throw new ArgumentNullException(nameof(execute));_canExecute = canExecute;}public bool CanExecute(object parameter){return _canExecute == null || _canExecute(parameter);}public void Execute(object parameter){_execute(parameter);}public event EventHandler CanExecuteChanged{add { CommandManager.RequerySuggested += value; }remove { CommandManager.RequerySuggested -= value; }}// 可以在这里添加额外的逻辑来处理 CanExecuteChanged 事件的触发,但上面的实现已经足够用于大多数场景。}}

XAMl代码:

<Window x:Class="Icommand练习.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:Icommand练习"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><StackPanel><TextBox Text="{Binding UserName, UpdateSourceTrigger=PropertyChanged}" /><TextBox Text="{Binding Email, UpdateSourceTrigger=PropertyChanged}" /><Button Content="登录" Command="{Binding SaveCommand}" CommandParameter="{Binding}" /><Button Command="{Binding Button2Command}" Content="账户历史"/></StackPanel>
</Window>

http://www.ds6.com.cn/news/68000.html

相关文章:

  • 做聚会的网站微信推广加人
  • 长春可做微网站的公司进入百度官网首页
  • 网站正在建设中 倒计时广东seo推广哪里好
  • 18年手机网站壹起航网络推广的目标
  • 通过网站做跳板东莞seo建站咨询
  • 中铁三局招聘文员要求身材好台州关键词首页优化
  • 做服装搭配的流行趋势网站seo文章是什么
  • 新疆乌鲁木齐网站建设网站制作seo搜索优化工程师招聘
  • 湖南做网站 在线磐石网络深圳百度推广关键词推广
  • 移动端网站开发前端模板今日重大国际新闻军事
  • me域名的网站潍坊百度快速排名优化
  • 互联网金融网站建设seminar是什么意思
  • 大地影院免费观看大全seo咨询解决方案
  • 腾讯学生云服务器如何做网站重庆关键词seo排名
  • 内部网站可以做ipc备案百度网络营销app下载
  • 龙岩kk网首页黑帽seo
  • 韩国b2b平台有哪些seo专员的工作内容
  • 性做网站谷歌seo网络公司
  • 设计网站大全有哪些销售清单软件永久免费版
  • 政府网站集约化建设 三年淘宝关键词搜索量查询
  • 网站与网页之间的区别是什么意思佛山快速排名seo
  • 手机网站单页怎么做图片在线转外链
  • 域名申请通过了网站怎么做深圳整站seo
  • 广州网站设计哪家公司好sem网络推广公司
  • 美国 网站后缀网址大全qq浏览器
  • 唯品会网站建设数据安全分析三亚网络推广
  • 小说阅读网站开发中国万网域名查询
  • 网站类型分类有哪些重庆网页优化seo
  • 酷黑网站百度竞价是什么
  • 2_ 如何写一份详细的网站开发方案海外网站cdn加速