【发布时间】:2021-01-30 12:37:54
【问题描述】:
我有一个带有一系列列表框的 Windows 窗体
后续列表的内容会根据之前的选择而变化
所有的盒子都绑定到一个启用了 OnListChanged 的 BindingList
当添加或删除元素时,我使用它来保留用户指定的“已检查”项目
但是,我注意到如果我将一个项目添加到列表中,它似乎只有在所有其他事件都被触发后才会更新 UI
我已经查看了我希望在 CheckedListBox 和相关 ViewModel 上触发的事件,以便捕获将项目添加到列表中的事件,但到目前为止没有成功
有人可以告诉我,在 UI 更新后哪个事件允许我调用我的“CheckBoxes”方法,否则它们都会再次设置为空白,直到表单被关闭和打开
private void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
// I've removed the debug statements, but this event when the bound list updates is fired before the UI updates
}
private void teams_checked_list_box_SelectedIndexChanged(object sender, EventArgs e)
{
// same with this event, and the other events like SizeChanged
}
已编辑:经过反思,我意识到问题的发生是因为我没有在绑定中设置真/假检查标志,因为我不知道该怎么做。如果有人能指出我正确的方向?目前的代码如下所示:
teams_checked_list_box.DataSource = Globals.ThisAddIn.TFSTeamsViewModel.ListOfTeamsFromVM.value;
teams_checked_list_box.DisplayMember = "name";
所以基本上我只是更新项目名称,检查标志在以后处理
【问题讨论】:
标签: winforms vsto checkedlistbox