Liaison DataGridComboBoxColumn

J’essaie de lier ObservableCollection of T à DataGridComboBoxColumn de DataGrid.
La définition de DataGrid est:

      

C’est ViewModel et 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 ssortingng Name { get; set; } } public class Model : ObservableObject { private ObservableCollection _roadTypes; public ssortingng ColumnName { get; set; } public ObservableCollection RoadTypes { get { return _roadTypes; } set { _roadTypes = value; RaisePropertyChanged(() => RoadTypes); } } } 

DataGrid affiche également la colonne de texte, mais pas les valeurs ComboBox.
Qu’est-ce qui ne va pas?

Comme RoadTypes n’est pas une simple liste de chaînes, vous devez indiquer à votre liste déroulante la propriété à afficher dans la zone de liste déroulante. Essayez d’append

 DisplayMemberPath="Name" 

à votre déclinaison combobox

Mettre à jour:

D’accord, c’est une “fonctionnalité” connue avec les datagrids WPF. Le problème est que le DataGridComboBox n’a pas le DataContext du DataGrid. J’ai modifié la liaison pour la ComboBox pour ressembler à ceci:

         

J’ai modifié le code que vous avez fourni dans votre lien de téléchargement et les éléments de la liste déroulante étaient affichés lorsque j’ai ouvert la liste déroulante.

Consultez certains de ces liens pour plus de précisions:

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

Comment lier une collection à WPF: DataGridComboBoxColumn

Excedrin mal de tête # 3.5.40128.1: Utilisation de listes déroulantes avec WPF DataGrid

Ce qui m’a amené à examiner tous ces sites, c’est à regarder dans la fenêtre de sortie et à remarquer le message d’erreur System.Windows.Data Erreur: 2: impossible de trouver FrameworkElement ou FrameworkContentElement régissant l’élément cible. message