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"/>