我是WPF for Windows应用程序开发的新手,只是想把它放在那里。我正在使用Visual Studio 2010和.NET Framework 4.0。
我正在研究一种相当简单的管理工具。为简单起见,我想说我正在使用Employee数据。我创建了一个名为UserDetail的UserControl,其中包含与Employee类相关的所有字段。
在UserDetail上绑定输入控件的最简单方法是什么?创建新实例时可能会出现空白,如果编辑现有实例,则可能为现有值。
我在构造函数中尝试了以下内容:
DataContext = _employee;
我在XAML中绑定了这样的控件:
<TextBox Name="txtFirstName" Text="{Binding FirstName}"/>
这样可行,但它似乎不是正确的方法。这似乎是一个简单的例子,但我还没有发现任何有用的东西。
有关此类简单绑定的教程的任何建议或链接吗?
答案 0 :(得分:4)
对于您的具体示例,您说您正在使用UserControl。您应该能够直接将UserDetails控件的DataContext绑定到正在使用控件的位置,因此您不需要在UserControl的代码中设置DataContext。至少,UserControl的用户通常会告诉UserControl要使用哪些数据。
假设您有一个AllEmployees类,其属性为SelectedEmployee。您在Window上将此对象的实例设置为DataContext - 在后面的代码中。现在,您希望窗口显示SelectedEmployee的用户详细信息。构建UserDetails控件是假设它有一个绑定到其DataContext的Employee对象,现在通过在DataBinding中设置它来确保它有一个:
<Window xmlns:local="YourNamespaceHoldingTheUserDetailsControl>
..
<local:UserDetails DataContext={Binding SelectedEmployee} />
..
</Window>
您还可以向UserDetails类添加一个Employee属性,该类将设置DataContext - 如果您认为这在绑定中看起来更好。
要改善GUI与域模型之间的分离,您应该明确了解the MVVM pattern。我最初是通过Jason Dollinger几次观看this video来学习的。该视频将教你很多关于WPF的有用信息。 This question似乎也在这个问题上有一些有价值的联系。
祝学习WPF好运!它与其他GUI框架有点不同,因此学习曲线可能有点陡峭。但是一旦你进入它,这是一个很棒的地方!
答案 1 :(得分:2)
你实际上是在正确的轨道上。
我建议你阅读this article on M-V-VM。