首页 > 其他分享 >WPF新建viewModel实例化成员的注意事项

WPF新建viewModel实例化成员的注意事项

时间:2024-04-13 17:44:22浏览次数:24  
标签:group title MainWindowItem viewModel 注意事项 new WPF type icon

不要用表达式体去初始化一个用做数据源(比如ItemSource)的引用类型成员。比如这种

public List<MainWindowItem> Items => new List<MainWindowItem>()
{
    new MainWindowItem{title="项目管理",icon="\ue613",type=typeof(项目管理Control),group="内部管理"},
    new MainWindowItem{title="人力资源管理",icon="\ue828",type=typeof(人力资源管理Control),group="内部管理"},
    new MainWindowItem{title="部门管理",icon="\ue7cf",type=typeof(部门管理Control),group="内部管理"},
    new MainWindowItem{ title = "项目参与人员管理",icon="\ue608", type = typeof(项目参与人员管理Control), group = "其他管理" },
};

因为每次表达式体实际上是一个语法糖,被翻译成了一个只读属性

public List<MainWindowItem> Items { 
    get {
        return new List<MainWindowItem>()
        {
            new MainWindowItem{title="项目管理",icon="\ue613",type=typeof(项目管理Control),group="内部管理"},
            new MainWindowItem{title="人力资源管理",icon="\ue828",type=typeof(人力资源管理Control),group="内部管理"},
            new MainWindowItem{title="部门管理",icon="\ue7cf",type=typeof(部门管理Control),group="内部管理"},
            new MainWindowItem{ title = "项目参与人员管理",icon="\ue608", type = typeof(项目参与人员管理Control), group = "其他管理" },
        };
    } 
}

 

导致每次访问这个属性时,都会重新new一个对象。这个对象和原来绑定到界面的对象不是同一个对象,某些情况下会出现意料之外的结果。

标签:group,title,MainWindowItem,viewModel,注意事项,new,WPF,type,icon
From: https://www.cnblogs.com/ggtc/p/18133133

相关文章

  • WPF深入浅出的 6.3.3 Binding的路径(Path)
    根据WPF的6.3.3Binding的路径(Path)代码验证结果 publicclassCity{publicstringName{get;set;}}publicclassProvince{publicstringName{get;set;}publicList<City>CityList{get;set;}}publ......
  • WPF自定义Window
    前言我们使用WPF开发客户端软件时,一般来讲都不会直接使用默认的Window样式,因为很难符合项目的风格,所以我们一般会自定义Window,一般有两种方式。WindowStyle=None和自定义Window,本文主要介绍第二种。一、WindowStyle=NoneWindowStyle="None"将Window的整个边框就去掉了,好处是......
  • WPF 项目开发
    1、WPF文件管理助手1.1、文件比较1.2、文件差异1.3、文件上传下载2、WPF数据库同步助手2.1、数据表对比2.2、数据同步3、WPF视频录屏软件3.1、屏幕录屏3.2、区域录屏3.2、应用录屏3.3、录制GIF4、WPF软件自动升级器4.1、服务端4.2、客户端5、WPF软件授权码 6、WPFUI7、W......
  • 界面控件DevExpress WinForms/WPF v23.2 - 富文本编辑器支持内容控件
    众所周知内容控件是交互式UI元素(文本字段、下拉列表、日期选择器),用于在屏幕上输入和管理信息。内容控件通常在模板/表单中使用,以标准化文档格式和简化数据输入。DevExpress文字处理产品库(WordProcessingDocumentAPI、WinForm和WPF富文本编辑器)附带了内容控制支持(v23.2+)。具......
  • 使用ssl域名证书自动续期工具acme.sh的注意事项
    1.如果你的安装服务器位于中国大陆境内,访问github可能会不成功.所以安装可能会失败.推荐从这里下载安装:https://gitee.com/neilpang/acme.sh安装步骤:根据 How-to-install#3-or-git-clone-and-install根根据How-to-install#3-or-git-clone-and-installgitclone......
  • WPF的TextTrimming的属性
    WPF的TextTrimming="CharacterEllipsis"是一种文本修剪方式,用于在文本长度超过容器宽度时省略文本。它会在文本末尾添加省略号(...),同时保留尽可能多的字符。这种修剪方式通常用于UI设计中,以避免文本溢出并保持视觉美观。可以通过设置TextTrimming属性来指定文本的截断方式:Tex......
  • 布隆过滤器 及 Redis Sorted sets 使用注意事项
    布隆过滤器基本概念布隆过滤器(英语:BloomFilter)是1970年由伯顿·霍华德·布隆(BurtonHowardBloom)提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有......
  • WPF 读取和存储RichTextBox的文档内容
    在编辑RichTextBox内容时,我们看不到其文档的源码内容,因为我们没有像在Web开发中那样有浏览器自带的翻译功能可以使用(相关内容http://blog.sina.com.cn/s/blog_685790700100l61i.html)。将会用到两个对象 System.Windows.Markup命名空间下的XamlWriter对象和XamlReader对象。htt......
  • WPF的实时更新
    publicpartialclassApp:Application{#regionDoEventprivatestaticDispatcherOperationCallbackexitFrameCallback=newDispatcherOperationCallback(ExitFrame);privatestaticObjectExitFrame(Objectstate){......
  • .NetCore在跨域时设置自定义响应头的注意事项
      现在B/S开发基本都是前后端分离的方式了吧,那么这往往会涉及到一个跨域的问题,为了安全,跨域访问往往做了很多的限制,这里对跨域时自定义响应头做个笔记。  当我们在.NetCore的后端给请求添加了一个自定义的响应头的时候,通过api调用,响应头完美的返回:  publicclassHome......