简单的CRUD使用WPF和数据绑定

我是WPF的Windows应用程序开发新手,只是想先把它放在那里。 我正在使用Visual Studio 2010和.NET Framework 4.0。

我正在做一个相当简单的pipe理工具。 为了简单起见,可以说我正在使用员工数据。 我创build了一个名为UserDetail的UserControl,它具有所有与Employee类相关的字段。

在UserDetail上绑定input控件的最简单方法是什么? 这可能在创build新实例时有一个空白屏幕,或者在编辑现有实例时有现有的值。

我在构造函数中尝试了以下内容:

DataContext = _employee; 

我在XAML中绑定了一个这样的控件:

 <TextBox Name="txtFirstName" Text="{Binding FirstName}"/> 

这工作,但它似乎不是正确的方式来做到这一点。 这似乎是一个简单的例子,但我还没有find有用的东西。

任何build议或链接到这种简单的绑定教程?

就像乔尔说的你是正确的。 在某些情况下,您需要在后面的代码中显式设置DataContext。 这通常是在顶层完成 – 就像在你的Window类中一样 – 所有进一步的DataContext都应该通过DataBindings来设置。

对于你的具体例子,你说你正在使用UserControl。 您应该能够直接在使用控件的位置绑定UserDetails控件的DataContext,因此您不需要在UserControl的后面的代码中设置DataContext。 至少通常UserControl的用户是谁来告诉UserControl使用哪些数据。

假设您有一个拥有属性SelectedEmployee的AllEmployees类。 您可以在窗口中将该对象的一个​​实例设置为DataContext – 在后面的代码中。 现在,您希望您的窗口显示SelectedEmployee的用户详细信息。 UserDetails控件的构建假设它有一个绑定到它的DataContext的Employee对象,现在通过在DataBinding中设置它来确保它有一个:

 <Window xmlns:local="YourNamespaceHoldingTheUserDetailsControl> .. <local:UserDetails DataContext={Binding SelectedEmployee} /> .. </Window> 

你也可以添加一个Employee属性到你的UserDetails类,它将设置DataContext – 如果你认为这看起来更好的绑定。

为了改进GUI和你的领域模型之间的分离,你应该明确地了解MVVM模式 。 我最初通过Jason Dollinger观看这段视频学到了几次。 该视频将教你关于WPF的很多有用的东西。 这个问题似乎也有一些有关这个问题的宝贵的联系。

祝你好运学习WPF! 这与其他GUI框架有所不同,所以学习曲线可能会有些陡峭。 但一旦你进入它是一个美好的地方!

你实际上是在正确的轨道上。

我建议你在MV-VM上阅读这篇文章 。