C# 数据绑定列表框Winforms
这将在数据绑定和实现INotifyPropertyChanged的其他众多线程中得到回答。然而,我仍然有困难让这个工作 基本上我有两个列表框,当用户从第一个列表框中选择服务器名称时,第二个列表框应该提供该服务器上的数据库列表。很简单。但是,第二个列表框不显示更新的数据库列表 代码如下: 执行查询并将数据添加到DatabaseList属性的代码C# 数据绑定列表框Winforms,c#,winforms,data-binding,inotifypropertychanged,C#,Winforms,Data Binding,Inotifypropertychanged,这将在数据绑定和实现INotifyPropertyChanged的其他众多线程中得到回答。然而,我仍然有困难让这个工作 基本上我有两个列表框,当用户从第一个列表框中选择服务器名称时,第二个列表框应该提供该服务器上的数据库列表。很简单。但是,第二个列表框不显示更新的数据库列表 代码如下: 执行查询并将数据添加到DatabaseList属性的代码 private void selection_Server_SelectionChangeCommitted(object sender,
private void selection_Server_SelectionChangeCommitted(object sender, EventArgs e)
{
server = (string)selection_Server.SelectedItem;
try
{
ExecDBList(server, ref vm);
}
类,该类管理窗口上使用的属性
public class VM : INotifyPropertyChanged
{
private static List<string> _dblist;
public List<string> DatabaseList
{
get
{
return _dblist;
}
set
{
if (_dblist != value)
{
_dblist = value;
};
}
}
public VM() { }
void OnPropertyChanged(string PropertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
如果能帮助我实现这一点,我将不胜感激,因为我正在努力理解之前关于数据绑定和使用PropertyChangedEventHandler的答案
多谢各位
Richard尝试在PropertyChanged()上添加
在\u dblist
上设置值后,如下所示:
public List<string> DatabaseList
{
get
{
return _dblist;
}
set
{
if (_dblist != value)
{
_dblist = value;
OnPropertyChanged("DatabaseList");
};
}
}
最近没有使用WinForms,但是使用WPF,您尝试过这样做吗
RaisePropertyChanged(“数据库列表”)
这样,在您重新查询私有列表条目之后,任何绑定到它的内容都应该被通知。。。嘿,你的消息来源刚刚更新。。。还有一份新的清单。谢谢,我是个白痴,没有打电话。然而,我有一个旧版本,其中包含了对OnPropertyChanged的调用。它仍然不起作用,事实上,在调试行PropertyChanged(这是新的PropertyChangedEventArgs(PropertyName))时失败;我认为我没有做的是将PropertyChanged事件链接到listbox本身?不确定我是否需要这样做,尽管下面的评论在一定程度上帮助了我对这个主题的了解,但我仍然没有让它工作。
public List<string> DatabaseList
{
get
{
return _dblist;
}
set
{
if (_dblist != value)
{
_dblist = value;
OnPropertyChanged("DatabaseList");
};
}
}
if (_dblist != value)
{
_dblist = value;
NotifyPropertyChanged();
};