Wpf 数据绑定是将视图连接到模型的好方法吗

Wpf 数据绑定是将视图连接到模型的好方法吗,wpf,silverlight,model-view-controller,data-binding,mvp,Wpf,Silverlight,Model View Controller,Data Binding,Mvp,我正在考虑WPF或Silverlight应用程序的设计。我计划使用MVC(或其他类似的设计模式) 无论我选择哪种设计模式,我都需要连接到模型(或演示者)的视图——数据绑定是一种很好的方法吗 (在过去的WinForms应用程序中,我发现从长远来看,数据绑定会带来很多问题,无法实现其承诺。WPF和Siverlight也是如此?我建议您看看(MVVM)模式。这是一个非常好的视频,你应该看看:。WPF中的双向数据绑定功能非常强大。WPF中的数据绑定远远超出了Winforms中的功能。它是平台的固有特性,

我正在考虑WPF或Silverlight应用程序的设计。我计划使用MVC(或其他类似的设计模式)

无论我选择哪种设计模式,我都需要连接到模型(或演示者)的视图——数据绑定是一种很好的方法吗


(在过去的WinForms应用程序中,我发现从长远来看,数据绑定会带来很多问题,无法实现其承诺。WPF和Siverlight也是如此?

我建议您看看(MVVM)模式。这是一个非常好的视频,你应该看看:。WPF中的双向数据绑定功能非常强大。

WPF中的数据绑定远远超出了Winforms中的功能。它是平台的固有特性,并且在整个平台中普遍存在。我认为,如果不了解WPF的数据绑定系统,就无法理解WPF


当然,这也不是没有陷阱的。损坏的绑定通常不像您希望的那么明显,但是已经进行了改进,以帮助您识别和标记这些问题。

是的,您肯定应该使用数据绑定。虽然WinForms和ASP.NET总是很难以一致且可维护的方式绑定任何数据,但Silverlight和WPF是从头开始构建的,以满足数据绑定的需要

  • 绑定是双向的,因此不必编写繁琐的管道代码来将数据移入和移出模型。只需实施Inotifiable,然后就可以离开了
  • 转换器允许您编写代码,以便在默认值不起作用时处理绑定方式。使用转换器(编写起来非常简单),您可以将布尔值绑定到可见性设置,将字符串绑定到图像,将整数绑定到背景色,等等。天空是极限
  • MVVM等模式非常适合WPF和Silverlight中的丰富数据绑定支持。MVVM让您拥有两方面的优势:松散耦合的代码和数据绑定
  • 元素绑定允许您将一个元素的属性绑定到另一个元素的属性。与转换器一起,这为您提供了令人印象深刻的功能,可以将滑块控件的当前位置绑定到列表控件的选定索引。双向的
  • 深度绑定意味着您可以绑定到模型属性的属性。并不是说你总是应该,但你可以
  • 绑定的动态性几乎是神奇的。只要您的模型继续支持相同的绑定属性,即使模型的静态类型发生更改,绑定也将继续工作。装订也非常灵活。您可以绑定到集合、接口、复杂对象(几乎)任何您喜欢的对象
  • DataContexts可用于在页面、控件或容器级别设置数据绑定。然后,容器的子级继承相同的数据上下文。这允许您在页面级别绑定一次,然后对页面的其余部分使用绑定路径

    • 无论是WPF、Adobe Flex还是Winforms,当应用程序变得复杂时,数据绑定总是会出现问题。我宁愿避免数据绑定,以便于调试。但是数据绑定围绕着WPF运行,这是我们无法避免的。在XAML中进行数据绑定会剥夺开发人员的控制权

      我认为,如果我们在代码中保留数据绑定,那么调试就容易多了


      想象一下,没有数据绑定的MVVM看起来会很混乱。利用技术的设计模式是好的,但完全依赖特定功能的设计是一场灾难。

      谢谢,我现在正在看这段视频。很棒的视频!但是,如果重命名其中一个属性,则所有属性都将中断,因为没有对数据绑定进行编译时检查。