Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# 将DataGrid中的ComboBox绑定到视图中的集合_C#_Wpf_Mvvm - Fatal编程技术网

C# 将DataGrid中的ComboBox绑定到视图中的集合

C# 将DataGrid中的ComboBox绑定到视图中的集合,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个绑定到usercontrol的视图。在我的usercontrol上,我有一个datagrid,它绑定到我视图中的一个集合。datagrid中的一列是DataGridComboxColumn,我需要将它绑定到视图中的另一个集合。datagrid的绑定如下所示: DataContext="{Binding .}" ItemsSource="{Binding VictimVillages}" datacontext是视图,VictimVillages是我要在datagrid中显示的集合 我已

我有一个绑定到usercontrol的视图。在我的usercontrol上,我有一个datagrid,它绑定到我视图中的一个集合。datagrid中的一列是DataGridComboxColumn,我需要将它绑定到视图中的另一个集合。datagrid的绑定如下所示:

DataContext="{Binding .}" ItemsSource="{Binding VictimVillages}"
datacontext是视图,
VictimVillages
是我要在datagrid中显示的集合

我已尝试访问要在组合框中显示的集合

ItemsSource="{Binding Path=Patterns,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type Views:ViewPlanner}}}"
集合的名称是Patterns,视图的类型是“ViewPlanner”,它位于
视图
命名空间中

我已经创建了一个依赖关系图。我需要帮助找出黄色部分。

使用RelativeSource绑定时,您(大部分)必须在绑定路径中使用DataContext.YourProperty

如果来自DataGrid的datacontext也具有模式集合,则可以执行此操作

ItemsSource="{Binding Path=DataContext.Patterns,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type DataGrid}}}"
我经常使用“MarkerInterface”进行相对绑定。这意味着我可以将空接口添加到视图中

public interface IDataContextMarker4PatternCollection {}
现在将此接口添加到视图/用户控件中,其中模式集合属性位于Datacontext中

现在您可以简单地使用RelativeSourceBinding

 ItemsSource="{Binding Path=DataContext.Patterns,RelativeSource={RelativeSource AncestorType={x:Type local:IDataContextMarker4PatternCollection }}}"

网格的datacontext确实知道Patterns集合,但是您建议的代码不起作用……我放弃了。我只是给了列一个名称,并在.cs文件中设置了itemssource。