zoukankan      html  css  js  c++  java
  • WPF技巧:通过代码片段管理器编写自己常用的代码模板提示效率

    在写自定义控件的时候,有一部分功能是当内部的值发生变化时,需要通知控件的使用者,而当我在写依赖项属性的时候,我可以通过popdp对应的代码模板来完成对应的代码,但是当我来写属性更改回调的时候,却发现没有对应的RoutedEvent,导致需要手撸那么多的代码,而很多时候一旦项目中赶进度,也许就会因为这个原因,把VM下的逻辑放到了UserContorl里了。(我review别人的代码时,发现了好多这种现象,但是逻辑都写完了,改动又太大,而且可能他们一直处于加班状态,我也不好意思在指出这些问题)。所以这一篇是写使用代码模板辅助我们写UserControl时更好的解耦。下一篇博客是讲usercontrol的。里面很多复杂有规律的代码都不是我手撸的,是通过代码模板添加完之后生成的。

    如何使用代码模板

    在类中定义属性时输入prop对应的单词,然后按下2次Tab键,就可以生成代码片段。

    (1)在类中输入prop=》2次Tab创建属性。

    (2)生成如下代码:

    public int MyProperty { get; set; }

    这个内容的定义是在Visual Studio 的工具=》代码片段管理器=》语言我选择CSharp=》My Code Snippets下添加我自己的代码片段。

    点击添加=》导入选择我的snippet文件点击导入。如下图

    我上传的是一个自动添加路由事件用于属性通知的代码片段。

    使用方式如上图在类中输入propurv按下2次Tab键就可以快速的创建代码,模板具体如下,可以快速的修改内容。

     private void OnDefaulRoutedEventChanged(MyProperty oldValue, MyProperty newValue)
          {
               RoutedPropertyChangedEventArgs<MyProperty> args = new RoutedPropertyChangedEventArgs<MyProperty>(oldValue, newValue);
               args.RoutedEvent = ownerclass.DefaulRoutedEventChangedEvent;
               RaiseEvent(args);
          }

           public static readonly RoutedEvent DefaulRoutedEventChangedEvent = EventManager.RegisterRoutedEvent("DefaulRoutedEventChanged", RoutingStrategy.Bubble,
               typeof(RoutedPropertyChangedEventHandler<MyProperty>), typeof(ownerclass));

           public event RoutedPropertyChangedEventHandler<MyProperty> DefaulRoutedEventChanged
          {
               add { AddHandler(DefaulRoutedEventChangedEvent, value); }
               remove { RemoveHandler(DefaulRoutedEventChangedEvent, value); }
          }

    这篇的主要目的是为了更好的编写代码。是我在自定义控件代码中解耦VM和UserContorl混用的。

    我创建了一个C#相关的交流群。用于分享学习资料和讨论问题,这个propuev也在群文件里。欢迎有兴趣的小伙伴:QQ群:542633085

  • 相关阅读:
    Mono.Ceil 无法保存Silverlight 程序集
    MyFramework框架搭建(二)DAL层整体通信
    MyFramework框架搭建(一)DAL层
    使用 tke-autoscaling-placeholder 实现秒级弹性伸缩
    被集群节点负载不均所困扰?TKE 重磅推出全链路调度解决方案
    一文读懂 TKE 及 Kubernetes 访问权限控制
    一文读懂 Kubernetes APIServer 原理
    K8s 平台可以如何处理 Pod 预授权问题
    【从0到1学习边缘容器系列-4】弱网环境利器之分布式节点状态判定机制
    一文读懂 SuperEdge 边缘容器架构与原理
  • 原文地址:https://www.cnblogs.com/duwenlong/p/14711950.html
Copyright © 2011-2022 走看看