• wpf devexpress 绑定数据编辑器


    定义视图模型

    打开前一个项目

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

    1. [POCOViewModel]
    2. public class RegistrationViewModel {
    3. public static RegistrationViewModel Create() {
    4. return ViewModelSource.Create(() => new RegistrationViewModel());
    5. }
    6. protected RegistrationViewModel() {
    7. if(this.IsInDesignMode())
    8. InitializeInDesignMode();
    9. else InitializeInRuntime();
    10. }
    11. void InitializeInDesignMode() {
    12. FirstName = "John";
    13. LastName = "Smith";
    14. Email = "John.Smith@JohnSmithMail.com";
    15. Password = "Password";
    16. ConfirmPassword = "Password";
    17. Birthday = new DateTime(1980, 1, 1);
    18. }
    19. void InitializeInRuntime() {
    20. Birthday = null;
    21. }
    22. public virtual string FirstName { get; set; }
    23. public virtual string LastName { get; set; }
    24. public virtual string Email { get; set; }
    25. public virtual string Password { get; set; }
    26. public virtual string ConfirmPassword { get; set; }
    27. public virtual DateTime? Birthday { get; set; }
    28. }

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

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

    注册数据

    添加AddEmployee方法到视图模型

    1. [POCOViewModel]
    2. public class RegistrationViewModel {
    3. ...
    4. public void AddEmployee() {
    5. EmployeesModelHelper.AddNewEmployee(FirstName, LastName, Email, Password, Birthday.Value);
    6. }
    7. }

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

      

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

    绑定编辑器

    重新生成项目

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

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

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

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

    1. <dxlc:LayoutControl Orientation="Vertical" ItemStyle="{StaticResource itemStyle}" ItemSpace="10">
    2. <dxlc:LayoutGroup ItemSpace="10">
    3. <dxlc:LayoutItem Label="Name">
    4. <dxe:TextEdit EditValue="{Binding FirstName}" />
    5. dxlc:LayoutItem>
    6. <dxe:TextEdit VerticalAlignment="Bottom" EditValue="{Binding LastName}" />
    7. dxlc:LayoutGroup>
    8. <dxlc:LayoutItem Label="Email">
    9. <dxe:TextEdit EditValue="{Binding Email}" />
    10. dxlc:LayoutItem>
    11. <dxlc:LayoutItem Label="Create a password">
    12. <dxe:PasswordBoxEdit EditValue="{Binding Password}" />
    13. dxlc:LayoutItem>
    14. <dxlc:LayoutItem Label="Confirm your password">
    15. <dxe:PasswordBoxEdit EditValue="{Binding ConfirmPassword}" />
    16. dxlc:LayoutItem>
    17. <dxlc:LayoutItem Label="Birthday">
    18. <dxe:DateEdit EditValue="{Binding Birthday}" />
    19. dxlc:LayoutItem>
    20. <Button Content="Register" HorizontalAlignment="Center" VerticalAlignment="Bottom" Width="80"
    21. Command="{Binding AddEmployeeCommand}" />
    22. dxlc:LayoutControl>

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

  • 相关阅读:
    TRITC-透明质酸,TRITC-hyaluronic acid,四甲基罗丹明标记透明质酸
    MyBatis 核心文件配置并完成CRUD。
    【电路中的滤波器】1.一阶RC低通滤波器详解
    基于IDEA创建Maven工程及注意事项
    java计算机毕业设计Vue和mysql智能图书管理系统MyBatis+系统+LW文档+源码+调试部署
    JVM原理:JVM运行时内存模型(通俗易懂)
    Nginx之正则表达式、location匹配简介及rewrite重写
    新技术的成熟、商业模式的完备,产业互联网的落地提供了土壤
    最新电容笔推荐,2022年电容笔十大品牌排行榜
    【正点原子STM32连载】第十二章 SYSTEM文件夹介绍 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • 原文地址:https://blog.csdn.net/loongsking/article/details/134475148