C# 减少MVVM WPF应用程序中附加属性、命令等的样板代码?
我正在开发一个WPF MVVM应用程序。我注意到的是,为了声明命令(通过WPF团队的MVVM工具包中的delegateCommand)、附加属性和附加行为,我必须编写大量的样板代码。是否有任何策略可以减少我必须编写的样板代码的数量C# 减少MVVM WPF应用程序中附加属性、命令等的样板代码?,c#,wpf,mvvm,attached-properties,attachedbehaviors,C#,Wpf,Mvvm,Attached Properties,Attachedbehaviors,我正在开发一个WPF MVVM应用程序。我注意到的是,为了声明命令(通过WPF团队的MVVM工具包中的delegateCommand)、附加属性和附加行为,我必须编写大量的样板代码。是否有任何策略可以减少我必须编写的样板代码的数量 谢谢 就我个人而言,我喜欢乔希·史密斯的。他在那里使用了一个名为RelayCommand的类,但它听起来非常类似于工具箱中的DelegateCommand。它允许您创建命令,并通过lambda表达式传递CanExecute和Execute逻辑。这将有助于减少大量样板代
谢谢 就我个人而言,我喜欢乔希·史密斯的。他在那里使用了一个名为
RelayCommand
的类,但它听起来非常类似于工具箱中的DelegateCommand
。它允许您创建命令,并通过lambda表达式传递CanExecute和Execute逻辑。这将有助于减少大量样板代码
在中,Josh还谈到了使用通用属性观察器来避免PropertyChanged
事件处理的一些更混乱的方面。这也是值得研究的
诚然,很多所谓的“样板”代码为你的应用程序建立了一个非常动态和灵活的基础。如果您正在制作一个小型的、易于维护的应用程序,您可能会问自己,“我甚至需要在这里应用MVVM模式吗?”另一方面,如果您正在制作一个使用寿命较长且需要大量维护的大型应用程序,然后,这个样板代码将为您节省时间。我能想到的最明显的策略是使用代码片段和/或文件模板。它不会减少代码行数,但至少可以节省时间 您可以自己制作(或者找到一些可以直接导入到VisualStudio中的) 我个人使用Laurent Bugnon的mvvm light工具包,我使用他的代码片段/文件模板,它们确实为我节省了很多时间。我假设大多数流行的mvvm工具包都有类似的功能
希望有帮助 我发现我正在编写大量代码,通过INotifyPropertyChanged接口实现更改通知。为了减少这种情况,我发现了一个名为PropertyChanged.Fody的NuGet包,它使得向类属性添加INotifyPropertyChanged变得非常简单 下面是如何使用它
using PropertyChanged;
[ImplementPropertyChanged]
public partial class Order
{
}
现在,类中的任何公共属性都将具有属性更改通知。这对于通过DB first生成的EF类特别有用,因为您不能完全控制实体
请参阅更多信息。给我们举一个你认为“样板”的例子。一个人的样板是另一个人的业务逻辑。我使用片段来创建它们。这些片段创建了#区域,因此我不必全部查看。链接到博客文章: