WPF开发中最常见的错误是什么?

时间:2008-11-27 00:27:30

标签: wpf

这个问题旨在提供常见陷阱的解决方案列表,“陷阱”或开发WPF应用程序时的设计问题。这也可以包括适当的设计模式,只要有解释为什么它最好。响应应根据问题类型的常见程度进行投票。以下是规则:

  • 每篇文章一回复。这显然会使最常见的问题排名最高。
  • 最好提供已经生活在SO土地上的相关岗位或解决方案的链接。

7 个答案:

答案 0 :(得分:15)

问题:到目前为止,我看到的主要问题是人们开始使用winform UI模型在WPF中进行编码。

解决方案 WPF不是WinForms / MFC / Win32 因此,请忘记在开发基于Windows的用户界面过去20多天时使用和学习的所有UI方面的假设和规范年。

理解这个平台背后的核心思想非常重要,这个链接 - Major UI Development Breakthroughs in the new WPF platform将提供WPF的深入视图。其中列出了以下几点。突出显示的是我最喜欢的平台功能。

  1. 高级图片
  2. 绘图对象模型
  3. 丰富的应用文字
  4. 适应性用户界面布局
  5. 灵活内容模型
  6. 无视控件
  7. 数据驱动的用户界面
  8. 一致的样式
  9. 触发器
  10. 声明性编程

答案 1 :(得分:3)

问题:使用M-V-VM设计模式,我在哪里实例化视图?这是否发生在ViewModel中? SO Question 1SO Question 2

解决方案:使用M-V-VM模式而不是其他常见模式(如M-V-C)时,WPF开发最有效。倾向于将ViewModel视为处理打开和创建视图以及模型的控制器。在M-V-VM中不是这种情况。视图是应该创建视图的唯一位置。 ViewModels应该对视图一无所知。 SO Answer 1SO Answer 2

答案 2 :(得分:3)

没有意识到在项目开始时字体渲染有多糟糕,而且客户告诉他们,由于一切看起来模糊不清,他们无法看到它。

答案 3 :(得分:2)

问题/疑问: SO Question

  

如何公开DependencyProperty   我的用户中的组件   控制用户?有很多   如何暴露正常的例子   通过创建新依赖项来实现属性   属性和绑定,但没有如何   公开一个只读属性,如   FrameworkElement.ActualWidthProperty。

解决方案:您需要在用户控件中公开新的Readonly DependencyProperty,并在包含的“组件”的ActualWidthProperty更新时更新它。这需要使用DependecyPropertyDescriptor来获知发生的更改。 SO Solution

答案 4 :(得分:1)

使数据绑定在ContentControls(Windows,UserControls等)中定义的属性与构成控件内容的元素的属性之间正常工作。例如。假设我有一个看起来像这样的窗口:

<Window x:Name="MyWindow"....>
   <TextBlock Text="{Binding Path=PropertyDefinedInMyWindow}" />
</Window>

问题:无论您多久更新一次“PropertyDefinedInMyWindow”,它都不会反映在TextBlock中。 SO Question

解决方案:您需要设置Window的DataContext或告诉绑定属性所在的元素。 SO Solution

答案 5 :(得分:0)

Ivan Towlson在这个主题上做了很好的演讲。大多数信息都在他的幻灯片中,您可以从这里获得: http://hestia.typepad.com/flatlander/2008/08/codecamp-2008-.html

答案 6 :(得分:0)

在视图中使用代码 - 这会让宝宝FSM哭泣。