WPF ComboBox绑定到ObservableCollection

我是WPF的新手我有一个问题。 我有组织模块:

class Organization : ObservableObject { public string OrganizationName { get; set; } } 

我有组织的ViewModel:

 class OrganizationViewModel : ObservableObject { int _count = 0; public OrganizationViewModel() { Organization = new Organization {OrganizationName = "New Organization"}; } public Organization Organization { get; set; } public string OrganizationName { get { return Organization.OrganizationName; } set { if(Organization.OrganizationName != value) { Organization.OrganizationName = value; RaisePropertyChanged("OrganizationName"); } } } 

我有所有组织的ViewModel:

 class AllOrganizationsViewModel { private ObservableCollection m_organizations = new ObservableCollection(); public ObservableCollection Organizations { get { return m_organizations; } set { m_organizations = value; } } public AllOrganizationsViewModel() { for(int i = 0; i < 3; ++i) { m_organizations.Add(new OrganizationViewModel()); } } void AddOrganizationNameExecute() { m_organizations.Add(new OrganizationViewModel()); } bool CanAddOrganizationNameExecute() { return true; } public ICommand AddOrganization{get{return new RelayCommand(AddOrganizationNameExecute, CanAddOrganizationNameExecute);}} } 

这是MainWindow.xaml:

              

现在,我在ComboBox项中得到的是OrganizationViewModel类的名称,但我需要的是OrganizationName字符串。 在我看来,我有一些组织名称的绑定,但我无法弄清楚在哪里添加if(如果这是问题)。 我假设我可以使用我需要的组织的名称来创建字符串集合。 但是将来我需要组织类中的更多属性,这就是我需要它的工作方式。

我将不胜感激任何帮助

您需要添加DisplayMemberPath

  

另一种方法可以是定义ItemTemplate。 它为显示提供了更大的灵活性