减少样板代码在MVVM WPF应用程序用于附加属性,命令等?
-
12-09-2019 - |
题
我正在一个WPF应用MVVM。那我注意到的事情是,我必须写的样板代码了过多刚(从WPF团队的MVVM工具包通过DelegateCommands)宣布命令,附加属性和附加的行为。是否有可用来减少我写的样板代码量的任何策略?
谢谢!
解决方案
就个人而言,我喜欢约什 - 史密斯的 MVVM基业库。他采用了一种名为RelayCommand
有阶级,但听起来很相似,你DelegateCommand
从工具包。它可以创建一个命令并通过 CanExecute 和执行通过lambda表达式的逻辑。这将有助于减少大量的样板代码。
在他博客,约什也谈到了使用通用属性观察员避免一些PropertyChanged
事件处理的混乱方面。也就是说值得探讨,以及
老实说,虽然,很多所谓的“样板”代码设置为你的应用动态的,非常灵活的基础。如果你是一个小的,易于维护的应用程序,你可能会问自己,的“我甚至需要在这里申请MVVM模式?” 的如果,另一方面,你是一个更大的应用程序,将具有寿命长,并且需要大量的维护,那么这个样板代码是要保存下来就行了。
其他提示
我发现我正在写大量的代码经由INotifyPropertyChanged接口来实现改变通知。为了减少这种我发现了一个NuGet包称为PropertyChanged.Fody,使得增加INotifyPropertyChanged的一个类的属性非常简单。
下面是如何使用它;
using PropertyChanged;
[ImplementPropertyChanged]
public partial class Order
{
}
现在在班上会有财产的任何公共财产变更通知。这是特别有用,通过数据库生成EF类第一,你没有对你的实体的完全控制。
请参阅的GitHub 获得更多的信息。
最明显的策略我能想到使用代码段和/或文件模板的。它不会减少代码的行,但至少它让你节省时间。
您可以让他们自己(或者找一些你可以直接导入到Visual Studio)。
我个人使用来自洛朗•比尼翁的MVVM光工具包,我用自己的代码片段/文件模板,他们救了我大量的时间。我会假设存在于大多数流行的MVVM工具包类似的东西。
希望它能帮助!