c# - WPF ListView 项目呈现事件
问题描述
我正在使用WPF ListView,并根据用户的选择将ItemsSource属性绑定到不同的集合。当应用更改或替换绑定到ItemsSource属性的集合时,新的列表项将呈现在屏幕上。
有什么方法可以检测到渲染何时完成?我需要订阅什么样的活动?
到目前为止,我已经尝试过:
Loaded 事件:仅在第一次调用,绑定集合更改或替换后不调用
OnChildDesiredSizeChanged 方法:绑定集合更改时并不总是被调用
LayoutUpdated 事件:绑定集合更改时并不总是被调用
解决方案
您可以通过编写一个带有 await 的异步方法来实现这一点,我们在其中提供我们的项目源,因此只有在完成后我们才能进一步移动。
public async void A()
{
await Task.Run(new Action(B))
}
public void B()
{
//Give source for listvView here
}
通过这种方式,只有当列表视图完全加载了源数据时,我们才能进一步移动
推荐阅读
- callback - 气流http回调传感器
- linq - Linq Select with Max/Min, Left Join
- typescript - TypeScript:通过提供类体创建通用匿名类
- reactjs - 第 2 阶段 ecmaScript,在类内部解构时出现意外标记
- java - 签署 APK 时内容会发生什么?
- firebase - 我们可以在 Firestore 的客户端限制文档创建吗?
- javascript - 控制器操作方法返回字符串或使用 ajax 发布请求重定向到另一个操作
- c# - 构建失败。检查输出窗口以获取更多详细信息 - C# 发布失败但构建成功
- python - read_csv 文件导入错误-Pandas Empty data error
- python - Python ctypes.sizeof(...) 总是返回 0