绑定DataGridComboBoxColumn

我试图将Ob的ObservableCollection绑定到DataGrid的DataGridComboBoxColumn。
DataGrid定义是:

      

这是ViewModel和Model

 public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); var viewModel = new ViewModel(); DataContext = viewModel; } } public class ViewModel : ViewModelBase { private ObservableCollection _model; public ViewModel() { var list = new List(); var roadTypes = new ObservableCollection { new RoadType { Code = 1, Id = 1, Name = "Name1" }, new RoadType { Code = 1, Id = 1, Name = "Name1" } }; Model = new ObservableCollection { new Model { ColumnName = "Col1", RoadTypes = roadTypes }, new Model { ColumnName = "Col1", RoadTypes = roadTypes } }; } public ObservableCollection Model { get { return _model; } set { _model = value; RaisePropertyChanged(() => Model); } } } public class RoadType { public int Id { get; set; } public int Code { get; set; } public string Name { get; set; } } public class Model : ObservableObject { private ObservableCollection _roadTypes; public string ColumnName { get; set; } public ObservableCollection RoadTypes { get { return _roadTypes; } set { _roadTypes = value; RaisePropertyChanged(() => RoadTypes); } } } 

DataGrid也显示文本列,但不显示ComboBox值。
怎么了?

由于RoadTypes不是一个简单的字符串列表,您需要告诉您的combobox需要在ComboBox中显示哪些属性。 尝试添加

 DisplayMemberPath="Name" 

你的combobox声明

更新:

好的,这是WPF数据网格的一个已知“function”。 问题是DataGridComboBox没有DataGrid的DataContext。 我修改了ComboBox的绑定,如下所示:

         

我修改了您在下载链接中提供的代码,并在打开combobox下拉列表时显示了combobox项目。

查看其中一些链接以获得进一步说明:

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/b4b13a72-47f9-452f-85c6-6c4b5b606df5/

如何将集合绑定到WPF:DataGridComboBoxColumn

Excedrin头痛#3.5.40128.1:使用带有WPF DataGrid的combobox

让我查看所有这些站点的原因是查看“输出”窗口并注意到错误消息System.Windows.Data错误:2:无法找到目标元素的管理FrameworkElement或FrameworkContentElement。 信息