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

wpf devexpress 绑定数据编辑器

定义视图模型

打开前一个项目

打开RegistrationViewModel.cs文件添加如下属性到RegistrationViewModel类

[POCOViewModel]
public class RegistrationViewModel {public static RegistrationViewModel Create() {return ViewModelSource.Create(() => new RegistrationViewModel());}protected RegistrationViewModel() {if(this.IsInDesignMode())InitializeInDesignMode();else InitializeInRuntime();}void InitializeInDesignMode() {FirstName = "John";LastName = "Smith";Email = "John.Smith@JohnSmithMail.com";Password = "Password";ConfirmPassword = "Password";Birthday = new DateTime(1980, 1, 1);}void InitializeInRuntime() {Birthday = null;}public virtual string FirstName { get; set; }public virtual string LastName { get; set; }public virtual string Email { get; set; }public virtual string Password { get; set; }public virtual string ConfirmPassword { get; set; }public virtual DateTime? Birthday { get; set; }
}

从RegistrationViewModel是一个POCO类,所有定义属性都是可绑定的

InitializeInRuntime方法初始化生日属性。DateTime结构是一个值类型,因此Birthlday字段可以使用可空DateTime。和一个不可空类型,Birthday字段可能初始化在特定的值,没有被推荐

注册数据

添加AddEmployee方法到视图模型

[POCOViewModel]
public class RegistrationViewModel {...public void AddEmployee() {EmployeesModelHelper.AddNewEmployee(FirstName, LastName, Email, Password, Birthday.Value);}
}

POCO机制自动生成一个命令对于方法。生成的命令名字如下方法匹配[MethodName]Command。设置Command属性注册按钮:

  

<dxlc:LayoutControl Orientation="Vertical" ItemStyle="{StaticResource itemStyle}" ItemSpace="10">...<Button Content="Register" HorizontalAlignment="Center" VerticalAlignment="Bottom" Width="80" Command="{Binding AddEmployeeCommand}" />
</dxlc:LayoutControl>

绑定编辑器

重新生成项目

选择First Name TextEdit元素布局内容调用Quick Actions。点击重新排列按钮到EditValue右侧属性选择Create Data Binding

在调用对话框,启动Custom选项输入"FirstName"

绑定创建,FirstName编辑器显示测试数据在vs设计器

绑定余下的编辑器到它们的对应的属性和注册按钮到AddEmployee命令。XAML如下显示结果

<dxlc:LayoutControl Orientation="Vertical" ItemStyle="{StaticResource itemStyle}" ItemSpace="10"><dxlc:LayoutGroup ItemSpace="10"><dxlc:LayoutItem Label="Name"><dxe:TextEdit EditValue="{Binding FirstName}" /></dxlc:LayoutItem><dxe:TextEdit VerticalAlignment="Bottom" EditValue="{Binding LastName}" /></dxlc:LayoutGroup><dxlc:LayoutItem Label="Email"><dxe:TextEdit EditValue="{Binding Email}" /></dxlc:LayoutItem><dxlc:LayoutItem Label="Create a password"><dxe:PasswordBoxEdit EditValue="{Binding Password}" /></dxlc:LayoutItem><dxlc:LayoutItem Label="Confirm your password"><dxe:PasswordBoxEdit EditValue="{Binding ConfirmPassword}" /></dxlc:LayoutItem><dxlc:LayoutItem Label="Birthday"><dxe:DateEdit EditValue="{Binding Birthday}" /></dxlc:LayoutItem><Button Content="Register" HorizontalAlignment="Center" VerticalAlignment="Bottom" Width="80" Command="{Binding AddEmployeeCommand}" />
</dxlc:LayoutControl>

编辑器不显示测试数据在运行时

相关文章:

wpf devexpress 绑定数据编辑器

定义视图模型 打开前一个项目 打开RegistrationViewModel.cs文件添加如下属性到RegistrationViewModel类 [POCOViewModel] public class RegistrationViewModel {public static RegistrationViewModel Create() {return ViewModelSource.Create(() > new RegistrationVie…...

状态模式-

定义&#xff1a;当一个对象的内在状态改变时允许改变其行为&#xff0c;这个对象看起来像是改变了其类。 适用场景&#xff1a; 1、一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。 2、条件、分支语句的代替者&#xff0c;且这些分支依赖于该对象…...

人机交互——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…...

​软考-高级-系统架构设计师教程(清华第2版)【第18章 安全架构设计理论与实践(P648~690)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第18章 安全架构设计理论与实践&#xff08;P648~690&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图...

Hive调优

1.参数配置优化 设定Hive参数有三种方式&#xff1a; &#xff08;1&#xff09;配置Hive文件 当修改配置Hive文件的设定后&#xff0c;对本机启动的所有Hive进程都有效&#xff0c;因此配置是全局性的。 一般地&#xff0c;Hive的配置文件包括两部分&#xff1a; a&#xff…...

基于R语言平台Biomod2模型的物种分布建模与可视化分析

!](https://img-blog.csdnimg.cn/84e1cc8c7f9b4b6ab60903ffa17d82f0.jpeg#pic_center)...

Docker 安装一个本地的画图软件 —— 筑梦之路

画图是必不可少的&#xff0c;比如流程图、架构图等等&#xff0c;网上有很多画图软件是要收费的&#xff0c;使用起来很不方便&#xff0c;因此在内网部署一个免费开源的画图软件是有必要的。 如何部署 docker run -it --rm --name"drawio" -p 8080:8080 -p 8443:…...

【python】Conda强大的包/环境管理工具

Conda强大的包/环境管理工具 1. 简介2. 安装3. 指令 1. 简介 Conda是Anaconda中一个强大的包和环境管理工具&#xff0c;可以在Windows的Anaconda Prompt命令行使用&#xff0c;也可以在macOS或者Linux系统的终端窗口(terminal window)的命令行使用。2. 安装 [Linux平台安装教…...

常见面试题-Netty线程模型以及TCP粘包拆包

介绍一下 Netty 使用的线程模型&#xff1f; 答&#xff1a; Netty 主要基于主从 Reactor 多线程模型&#xff0c;其中主从 Reactor 多线程模型将 Reactor 分为两部分&#xff1a; mainReactor&#xff1a;监听 Server Socket&#xff0c;用来处理网络 IO 连接建立操作&…...

03.webpack中hash,chunkhash和contenthash 的区别

hash、contenthash 和 chunkhash 是通过散列函数处理之后&#xff0c;生成的一串字符&#xff0c;可用于区分文件。 作用&#xff1a;善用文件的哈希值&#xff0c;解决浏览器缓存导致的资源未及时更新的问题 1.文件名不带哈希值 const path require(path) const HtmlWebpac…...

OpenAI前CEO萨姆·阿尔特曼可能重返CEO职位;用LoRA微调LLM的实用技巧

&#x1f989; AI新闻 &#x1f680; OpenAI前CEO萨姆阿尔特曼可能重返CEO职位 摘要&#xff1a;据报道&#xff0c;OpenAI前CEO萨姆阿尔特曼有望重新担任CEO职位&#xff0c;并对公司董事会进行重大改变。微软等投资人正努力恢复阿尔特曼的职位&#xff0c;尽管董事会仍然是…...

修改docker默认数据目录

前言&#xff1a; docker默认数据目录是/var/lib/docker,根目录的存储空间有限&#xff0c;我们往往不能使用默认配置&#xff0c;需要创建空间相对较大的数据data目录 停止docker服务 systemctl stop docker 编辑配置文件 vi /etc/docker/daemon.json 增加选项 “graph”…...

wpf devexpress post 更改数据库

这个教程示范如何使用GridControl编辑数据&#xff0c;和保存更改到数据库。这个教程基于前一个篇。 Items Source Wizard 当 CRUD (Create, Read, Update, Delete) 启动选项时添加Post data功能 Items Source Wizard 生成如下代码&#xff1a; 1、设置 TableView.ShowUpdat…...

Ubuntu 18.04/20.04 LTS 操作系统设置静态DNS

1、nano /etc/systemd/resolved.conf 2、修改配置 使用DNS服务器&#xff1a;223.5.5.5 223.6.6.6 [Resolve] DNS223.5.5.5 223.6.6.6 3、重启服务 systemctl restart systemd-resolved.service 4、查看解析文件 cat /run/systemd/resolve/resolv.conf # This file is man…...

VSCode使用MinGW中的go并支持CGO

在Windows中&#xff0c;如果想使用Linux下的一些命令或者开发工具&#xff0c;可以安装Cygwin或者MinGW&#xff0c;MinGW相比Cygwin要轻量得多&#xff0c;笔者就安装的MinGW&#xff0c;但是安装MinGW后&#xff0c;如果把它加到Windows系统的PATH环境变量中&#xff0c;则可…...

tensor张量 ------ python特殊的数据结构

点赞收藏关注&#xff01; 如需转载请注明出处&#xff01; 张量与数组和矩阵非常相似。 在PyTorch中&#xff0c;使用张量来编码模型的输入和输出&#xff0c;以及模型的参数。 张量可以在GPU或其他硬件加速器上运行。 张量和NumPy数组通常可以共享相同的底层内存&#xff0c…...

openai/chatgpt的api接口,各个模型的最大输入token一览表

chatgpt的各个3.5api模型接口的最大输入量一览表&#xff1a; MODELDESCRIPTIONCONTEXT WINDOWTRAINING DATAgpt-3.5-turbo-1106Updated GPT 3.5 Turbo New The latest GPT-3.5 Turbo model with improved instruction following, JSON mode, reproducible outputs, parallel…...

Spark作业串行与并行提交job

在Scala中&#xff0c;您可以以串行和并行的方式提交Spark作业。看看如何使用for和par.foreach构造对应的例子。 串行Spark作业&#xff08;使用for&#xff09; // 串行Spark作业设置 for (tag <- tags) {spark.sparkContext.setJobGroup(tag.toString, s"Tag: $tag…...

HTTP HTTPS 独特的魅力

目录 HTTP协议 HTTP协议的工作过程 首行 请求头&#xff08;header&#xff09; HOST Content-Length​编辑 User-Agent&#xff08;简称UA&#xff09; Referer Cookie 空行 正文&#xff08;body&#xff09; HTTP响应详解 状态码 报文格式 HTTP响应格式 如何…...

【nlp】2.5(gpu version)人名分类器实战项目(对比RNN、LSTM、GRU模型)工程管理方式

人名分类器实战项目 0 说明1 工程项目设计2 数据预处理data_processing3 创建模型model4 模型测试test5 训练配置config6 模型训练train7 模型对比绘图plotfigure8 模型预测predict9 代码测试demo0 说明 本项目对前一个博客内容2.5(cpu version) 人名分类器实战项目(对比RNN、…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...