C# Datagrid中的组合框:缺少值

C# Datagrid中的组合框:缺少值,c#,wpf,data-binding,datagrid,combobox,C#,Wpf,Data Binding,Datagrid,Combobox,我打赌这是一个非常容易更新的东西:不是,但我没有在XAML中找到解决方案 我有两个对象:一个ObservableCollection,任务作为Datagrid的ItemsSource。以及字符串s的ObservableCollection,它应该是组合框中的值。 任务的名称绑定到第一列。到目前为止,一切顺利 现在我想在第二列中添加combobox,其中包含一些要选择的参数。 所选内容应绑定到任务的ExecutingCore属性 我想我把DataGridComboxColumn的ItemsSour

我打赌这是一个非常容易更新的东西:不是,但我没有在XAML中找到解决方案

我有两个对象:一个ObservableCollection,任务作为Datagrid的ItemsSource。以及字符串s的ObservableCollection,它应该是组合框中的值。 任务的名称绑定到第一列。到目前为止,一切顺利

现在我想在第二列中添加combobox,其中包含一些要选择的参数。 所选内容应绑定到任务的ExecutingCore属性

我想我把DataGridComboxColumn的ItemsSource搞砸了。我如何在这里进行绑定以获得下拉列表中显示的值

<DataGrid Grid.Column="3" ItemsSource="{Binding Database.list_Tasks}" 
    HorizontalAlignment="Left" Margin="21,52,0,0" VerticalAlignment="Top"
    Height="262" Width="205" AutoGenerateColumns="False">
       <DataGrid.Columns>
          <DataGridTextColumn Header="Task" Binding="{Binding Task_Spec_Name}"/>
          <DataGridComboBoxColumn 
                Header="Executing core" Width="100"
                ItemsSource="{Binding list_CoreID}" 
                SelectedItemBinding="{Binding ExecutingCore, Mode=TwoWay}"/>
          </DataGrid.Columns>
    </DataGrid>
这就是它的样子

使现代化 我尝试了EagleBeak的解决方案:

<DataGridComboBoxColumn 
            Header="Executing core" Width="100"
            ItemsSource="{Binding ElementName=TasksGrid, Path=DataContext.list_CoreID}" 
            SelectedItemBinding="{Binding ExecutingCore, Mode=TwoWay}"/>
</DataGrid.Columns>
但这导致了错误:

错误:System.Windows.Data错误:2:找不到目标元素的治理FrameworkElement或FrameworkContentElement。BindingExpression:Path=DataContext.list\u CoreID;DataItem=null;目标元素为'DataGridComboxColumn'HashCode=20169503;目标属性是“ItemsSource”类型“IEnumerable”

我在博客中发现了一些东西:

WPF不知道使用哪个FrameworkElement来获取DataContext,因为该列不属于DataGrid的可视树或逻辑树


有更好的解决办法吗?

我也遇到过这种问题。按照下面的方法,我在XAML中解决了这个问题

<wpf:DataGridComboBoxColumn 
 x:Name="cboExecutingcore" 
 Header="Executing core" 
 SelectedItemBinding="{Binding Path =Executingcore, Mode=TwoWay}"/>

对不起,伙计。我的解决方案不起作用,突然我在工作中被包围了。恐怕我得退出讨论了。但也许这会有帮助:没问题,谢谢你。我现在是在代码隐藏中完成的,这工作没有问题。嘿,伙计。刚刚查看了您的问题,并查看了您发布的Levesque博客的链接。现在我记得几年前我所在的团队中有人遇到过这个问题。BindingProxy解决方案正是我们当时所做的。比IMO背后的代码要好得多。这正是我所做的,而且据我所知,这是唯一一种不必胡闹的方法……我在我的一个案例中花了不止一天的时间。但无法从XAML绑定它。数据已正确保存,但组合框不显示任何值。
<wpf:DataGridComboBoxColumn 
 x:Name="cboExecutingcore" 
 Header="Executing core" 
 SelectedItemBinding="{Binding Path =Executingcore, Mode=TwoWay}"/>
cboExecutingcore.ItemsSource = list_CoreID;
cboExecutingcore.DisplayMemberPath = "Display Property"