减少样板代码在MVVM WPF应用程序用于附加属性,命令等?(Reducing boilerplat

2019-07-31 23:58发布

我工作的一个WPF MVVM应用。 那我注意到的事情是,我必须写的样板代码了过多刚(从WPF团队的MVVM工具包通过DelegateCommands)宣布命令,附加属性和附加的行为。 是否有任何策略可减少我写的样板代码量?

谢谢!

Answer 1:

就个人而言,我喜欢约什-史密斯的MVVM基业库 。 他采用了一种名为类RelayCommand存在,但它听起来很相似,你DelegateCommand从工具包。 它可以让你创建一个命令并通过CanExecute并通过lambda表达式执行逻辑。 这将有助于减少大量的样板代码。

在他的博客中 ,约什也谈到了使用通用属性观察员避免一些的混乱方面PropertyChanged事件处理。 这是值得研究的,也是如此。

老实说,虽然,很多所谓的“样板”代码设置为你的应用动态的,非常灵活的基础。 如果你是一个小的,易于维护的应用程序,你可能会问自己,“我甚至需要在这里申请MVVM模式?” 如果,另一方面,你这是,将有一个寿命长,并且需要大量的维护更大的应用程序,那么这个样板代码是要保存下来就行了。



Answer 2:

我发现,我写了很多代码通过INotifyPropertyChanged接口来实现更改通知。 为了减少这种我发现了一个NuGet包称为PropertyChanged.Fody,使得增加INotifyPropertyChanged的一个类的属性非常简单。

以下是如何使用它;

using PropertyChanged;

[ImplementPropertyChanged]
public partial class Order
{
}

现在,在类将有属性的任何公共财产变更通知。 这是通过DB产生的EF类第一,你没有对你的实体总量控制特别有用。

见GitHub上获取更多信息。



Answer 3:

最明显的策略,我能想到的是使用代码段和/或文件模板。 它不会减少代码的行,但至少它让你节省时间。

你可以让他们自己(或者找一些你可以直接导入到Visual Studio)。

我个人使用从洛朗•比尼翁的MVVM光工具包,我用自己的代码片段/文件模板,他们救了我大量的时间。 我会假设存在于大多数流行的MVVM工具包类似的东西。

希望能帮助到你!



文章来源: Reducing boilerplate code in MVVM WPF app for attached properties, commands, etc?