C# 无法将组合框绑定到ObservableCollection<&燃气轮机;

C# 无法将组合框绑定到ObservableCollection<&燃气轮机;,c#,wpf,binding,combobox,C#,Wpf,Binding,Combobox,我在将可观测集合绑定到组合框时遇到一些问题。 为了给出一些观点,我有一个这样的类: class LogOnUser { #region Members string _UserName; string _Password; #endregion #region Construction public LogOnUser(string username) { _UserName = username; }

我在将可观测集合绑定到组合框时遇到一些问题。 为了给出一些观点,我有一个这样的类:

class LogOnUser
{
    #region Members
    string _UserName;
    string _Password;
    #endregion

    #region Construction
    public LogOnUser(string username)
    {
        _UserName = username;
    }

    public LogOnUser(string username, string password)
    {
        _UserName = username;
        _Password = password;
    }
    #endregion

    #region Properties
    public string Username
    {
        get { return _UserName; }
        set { _UserName = value; }
    }

    public string Password
    {
        get { return _Password; }
        set { _Password = value; }
    }
    #endregion
}
然后我有另一个类在ObservableCollection中使用LogOnUser:

class LogOnUserCollection: ObservableCollection<LogOnUser>
{
    public LogOnUserCollection() : base()
    {
        Add(new LogOnUser("User1", "password"));
        Add(new LogOnUser("User2", "password"));
    }
}

除了ItemsSource,您还需要设置更多的属性

典型的组合框通常看起来像--


显示成员将告诉应该使用哪个属性在组合框中显示文本


和选定的项目作为名称建议将给您选定的项目,以便您可以使用它。(虽然所选项目与您的问题没有直接关系,但在大多数情况下,您将使用它)

尝试设置显示成员路径,如下所示

<ComboBox ItemsSource="{Binding LogOnUserCollection}"
      DisplayMemberPath="Username"/>


您在组合框上设置了DisplayMember了吗?请包含绑定代码好吗?没有XamlAppology,我现在就添加了xaml。谢谢,成功了!我认为SELECTED_ITEM在我的ViewModel中只是一个字符串,对吗?SELECTED ITEM是绑定到combobox的对象类型,因此在您的情况下是LogOnUser类型
<ComboBox ItemsSource="{Binding ITEMS}"
              DisplayMemberPath="PROPERTY_NAME"
              SelectedItem="{Binding SELECTED_ITEM}"/>
<ComboBox ItemsSource="{Binding LogOnUserCollection}"
      DisplayMemberPath="Username"/>