将WPF DataGridComboBoxColumn绑定到自定义源

问题描述

|| 我有一个绑定到它的View和viewmodel(WPF / C#)。 现在,在
DataGrid
中有一个
DataGridComboBoxColumn
,我想将组合的
ItemsSource
设置为viewmodel的某些固定属性。组合的隐式datacontext不幸地是当前行。 我要做的就是从当前行的DataContext中“退出”。 谢谢您的回答。     

解决方法

        我要做的是将窗口设置为具有ViewModel的DataContext,然后执行以下操作:
<ComboBox ItemsSource=\"{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type Window}},Path=NodeNames}\">
</ComboBox>
这将在树中找到窗口,然后为我绑定一个名为NodeNames的属性。     ,        例如,在我的项目中,我通过以下方式将comboBox绑定到ViewModel的属性
<ComboBox Name=\"projectcomboBox\" ItemsSource=\"{Binding Path=Projects}\" IsSynchronizedWithCurrentItem=\"True\" DisplayMemberPath=\"FullName\"
              SelectedValuePath=\"Name\"  SelectedIndex=\"0\"  Grid.Row=\"1\" Visibility=\"Visible\" Canvas.Left=\"10\" Canvas.Top=\"24\" Margin=\"11,6,13,10\">
    </ComboBox>
该属性是
 public ObservableCollection<Project> Projects
    {
        get { return projects; }
        set
        {
            projects = value;
            RaisePropertyChanged(\"Projects\");
        }
    }
设置ItemsSource,DisplayMemberPath,SelectedValuePath属性非常重要。 您还可以绑定SelectedIndex