Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF数据绑定,CollectionViewSource,INotifyPropertyChanged_C#_Wpf_Data Binding_Inotifypropertychanged_Collectionviewsource - Fatal编程技术网

C# WPF数据绑定,CollectionViewSource,INotifyPropertyChanged

C# WPF数据绑定,CollectionViewSource,INotifyPropertyChanged,c#,wpf,data-binding,inotifypropertychanged,collectionviewsource,C#,Wpf,Data Binding,Inotifypropertychanged,Collectionviewsource,当我第一次尝试在WPF中做一些事情时,我对WPF数据绑定感到困惑。然后我仔细研究了MSDN上的下一个示例: 现在,我完全理解了如何将主-细节范式用于从一个源(一个表)获取数据的表单,包括主部分和详细部分。 我的意思是,例如,我有一个包含数据的网格,在网格下面我有几个包含当前行详细数据的字段 但是,如果详细数据来自不同但相关的表,该如何做呢? 例如:您有一个列为“id”和“Name”的表“Users”。您还有另一个表“Pictures”,其中包含“id”、“Filename”、“UserId”等列

当我第一次尝试在WPF中做一些事情时,我对WPF数据绑定感到困惑。然后我仔细研究了MSDN上的下一个示例:

现在,我完全理解了如何将主-细节范式用于从一个源(一个表)获取数据的表单,包括主部分和详细部分。 我的意思是,例如,我有一个包含数据的网格,在网格下面我有几个包含当前行详细数据的字段

但是,如果详细数据来自不同但相关的表,该如何做呢? 例如:您有一个列为“id”和“Name”的表“Users”。您还有另一个表“Pictures”,其中包含“id”、“Filename”、“UserId”等列。现在,使用主细节范例,你必须构建一个表单。每次当你在母版中选择一行时,你应该得到所有相关图片的详细信息

正确的方法是什么?
你能给我举个例子吗

我不确定您是如何访问表的。但是我喜欢使用实体框架。 “图片”表中的外键关系似乎指向“用户”主键

使用EntityFramework4和.NET4(在我写这篇文章的时候都是用RC编写的)情况非常顺利。您只需基于当前数据库生成一个模型。这几乎可以将所有数据库记录映射到类。每个表都是模型中的一个集合(我称之为上下文),因此您可以通过以下方式访问它们:

context.Users和context.Pictures

用户将自动拥有一个名为Pictures的“导航属性”,它只是一个特定图片的集合,这些图片具有指向该用户的外键

因此,您可以将主“网格”绑定到context.Users,以显示您喜欢的用户的任何信息。然后在详细信息部分,您可以将详细信息“列表”绑定到: (grid.selectedRow作为用户)。图片

以上只是一段伪代码,希望它能让您朝着正确的方向开始

如果您不想使用实体框架,如果您可以提供更多关于如何从数据库访问信息的信息,我可能能够提供更多关于如何将主细节场景数据绑定的具体示例