c# – 编写MVVM样板代码的更好方法?

c# – 编写MVVM样板代码的更好方法?,第1张

概述我发现自己最近编写了大量的样板MVVM代码,并想知道是否有一种奇特的方式可以解决所有问题?我已经使用了实现INotifyPropertyChanged的ViewModelBase类,但这并没有解决必须编写所有访问器代码等问题.也许是通过编写一个自定义属性来执行此 *** 作,还是通过模板系统? public MyClass : ViewModelBase{ private int someVar 我发现自己最近编写了大量的样板MVVM代码,并想知道是否有一种奇特的方式可以解决所有问题?我已经使用了实现INotifyPropertyChanged的viewmodelBase类,但这并没有解决必须编写所有访问器代码等问题.也许是通过编写一个自定义属性来执行此 *** 作,还是通过模板系统?
public MyClass : viewmodelBase{    private int someVariable;    public int SomeVariable    {        get        {            return this.someVariable;        }        set        {            this.someVariable = value;            this.NotifyPropertyChanged("SomeVariable");        }    }}
解决方法 我有一个片段,用于创建我的视图模型属性.该特定片段使用表达式< Func< T>>其他评论者暗示的符号.
<?xml version="1.0" enCoding="utf-8"?><CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">  <CodeSnippet Format="1.0.0">    <header>      <SnippetTypes>        <SnippetType>Expansion</SnippetType>      </SnippetTypes>      <Title>VIEw Model Property</Title>      <Description>          Declares a property and member suitable for viewmodel implementation.      </Description>      <HelpUrl>      </HelpUrl>      <Shortcut>propvm</Shortcut>    </header>    <Snippet>      <Declarations>        <literal Editable="true">          <ID>propname</ID>          <tooltip>Property name</tooltip>          <Default>name</Default>          <Function>          </Function>        </literal>        <literal Editable="true">          <ID>type</ID>          <tooltip>Property type.</tooltip>          <Default>Type</Default>          <Function>          </Function>        </literal>        <literal Editable="true">          <ID>init</ID>          <tooltip>Member initialisation</tooltip>          <Default>null</Default>          <Function>          </Function>        </literal>      </Declarations>      <Code Language="csharp" Kind="type decl"><![cdaTA[public $type$$propname${    get { return m_$propname$; }    set     {         m_$propname$= value;        base.OnPropertyChanged(() => $propname$);    }} $type$m_$propname$= default($type$);$end$]]></Code>    </Snippet>  </CodeSnippet></CodeSnippets>

请注意对base.PropertyChanged()的调用.我有一个viewmodelBase类来为我做繁重的属性通知和验证.

用法是这样的:

>输入propvm
>按两次TAB
>填写突出显示的字段,然后按Tab键翻转到下一个字段!

Walkthrough : Creating a code snippet

总结

以上是内存溢出为你收集整理的c# – 编写MVVM样板代码的更好方法?全部内容,希望文章能够帮你解决c# – 编写MVVM样板代码的更好方法?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存