gpt4 book ai didi

winforms - 触发属性更改时,具有数据绑定(bind)的表单元素不刷新

转载 作者:行者123 更新时间:2023-12-03 10:41:17 25 4
gpt4 key购买 nike

我有一个 View 模型和一个带有几个列表框的系统 Windows 窗体
我已将数据绑定(bind)到列表框的内容,如下
当用户与框一交互时,它会更新 View 模型以更改框二的内容
打开和关闭表单时,一切都很好 - 框显示正确的内容
我已经实现了 OnPropertyChanged 以确认 View 模型也正确更新
但是,我还没有让第二个框刷新其内容以响应 OnPropertyChanged,直到我关闭并打开表单
在通知更新功能已完成后,我尝试调用 form.refresh() 以及 checklistbox.refresh()
我确实注意到的一件事是更改 View 绑定(bind)到的对象的内容并没有触发 OnPropertyChanged,我认为这很奇怪。它只在对象初始化时改变?我在那里做错了吗?

    protected override void OnBindingContextChanged(EventArgs e)
{


base.OnBindingContextChanged(e);

Globals.ThisAddIn.TFSTeamsViewModel.PropertyChanged += OnPropertyChanged;


}

void LoadProjectsListBox()

{
try
{
Globals.ThisAddIn.TFSConfigViewModel.LoadListOfProjectsIntoFormControl();
projects_list_box.DataSource = Globals.ThisAddIn.TFSConfigViewModel.ListOfProjectsFromVM.value;
projects_list_box.DisplayMember = "name";


Globals.ThisAddIn.TFSTeamsViewModel.LoadTeamsForProjectsChosen();
teams_checked_list_box.DataSource = Globals.ThisAddIn.TFSTeamsViewModel.ListOfTeamsFromVM.value;
teams_checked_list_box.DisplayMember = "name";



SelectCheckBoxForSavedSelection();



}

catch (Exception ex)

{
System.Diagnostics.Debug.WriteLine("Debug: TFS_Config_UI_Control: LoadProjectsListBox: Exception: " + ex.Message);

}

}

最佳答案

如上所述,答案是使用 BindingList

关于winforms - 触发属性更改时,具有数据绑定(bind)的表单元素不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65940831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com