这将在其他许多关于数据绑定和实现 INotifyPropertyChanged 的线程中得到解答。但是,我仍然很难让它发挥作用。
基本上我有两个列表框,当用户从第一个列表框中选择服务器名称时,第二个应该提供该服务器上的数据库列表。很简单。但是,第二个列表框不显示更新的数据库列表。
这是代码:执行查询并将数据添加到 DatabaseList 属性的代码。
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;
分配列表框数据源的 MainWindow 初始化代码行
selection_RDM.DataSource = vm.DatabaseList;
由于我正在努力理解以前对数据绑定和使用 PropertyChangedEventHandler 的答案,因此任何有助于使其正常工作的帮助都将不胜感激。
谢谢理查德