我是用于 Windows 应用程序开发的 WPF 新手,只是想先将其介绍一下。我正在使用 Visual Studio 2010 和 .NET Framework 4.0。
我正在开发一个相当简单的管理工具。为了简单起见,假设我正在处理员工数据。我创建了一个名为 UserDetail 的小型 UserControl,其中包含与 Employee 类相关的所有字段。
在我的 UserDetail 上绑定输入控件的最简单方法是什么?创建新实例时可能会出现空白屏幕,或者编辑现有实例时可能会出现现有值。
我在构造函数中尝试了以下操作:
DataContext = _employee;
我在 XAML 中绑定了这样的控件:
<TextBox Name="txtFirstName" Text="{Binding FirstName}"/>
这可行,但似乎不是正确的方法。这似乎是一个简单的例子,但我还没有发现任何有用的东西。
对于这种简单的绑定有任何建议或教程链接吗?
就像乔尔说的那样,你走在正确的道路上。在某些时候,您需要在后面的代码中显式设置 DataContext。这通常在顶层完成 - 就像在您的 Window 类中 - 并且所有进一步的 DataContext 都应该通过 DataBindings 设置。
对于您的具体示例,您说您正在开发用户控件。您应该能够直接在使用该控件的地方绑定 UserDetails 控件的 DataContext,因此您不需要在 UserControl 的后面代码中设置 DataContext。至少通常情况下,用户控件的用户会告诉用户控件要使用哪些数据。
假设您有一个 AllEmployees 类,其属性为 SelectedEmployee。您可以在后面的代码中将此对象的实例设置为窗口上的 DataContext。现在您希望窗口显示 SelectedEmployee 的用户详细信息。 UserDetails 控件是在假设它有一个绑定到其 DataContext 的 Employee 对象的情况下构建的,现在您可以通过在 DataBinding 中设置该对象来确保它有一个 Employee 对象:
<Window xmlns:local="YourNamespaceHoldingTheUserDetailsControl>
..
<local:UserDetails DataContext={Binding SelectedEmployee} />
..
</Window>
您还可以将 Employee 属性添加到 UserDetails 类中,该属性将设置 DataContext - 如果您认为这在绑定中看起来更好。
为了改善 GUI 和领域模型之间的分离,你绝对应该了解MVVM 模式 http://en.wikipedia.org/wiki/Model_View_ViewModel。我最初是通过观看了解到的这个视频 http://www.lab49.com/files/videos/Jason%20Dolinger%20MVVM.wmv杰森·多林格 (Jason Dollinger) 写过几次。该视频将教您许多有关 WPF 的有用知识。这个问题 https://stackoverflow.com/questions/1405739/mvvm-tutorial-from-start-to-finish似乎也有一些关于该主题的有价值的链接。
祝学习 WPF 顺利!它与其他 GUI 框架有点不同,因此学习曲线可能有点陡峭。但一旦你进入其中,这就是一个美妙的地方!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)