小编Gam*_*ist的帖子

获取ListView可见项目

我有一个ListView可能包含很多物品,所以它是virtualized和回收物品.它不使用排序.我需要刷新一些值显示,但是当项目太多时,更新所有内容的速度太慢,所以我只想刷新可见项目.

我怎样才能获得所有当前显示的项目列表?我试图调查ListView或者在里面ScrollViewer,但我仍然不知道如何实现这一目标.如果可以看到解决方案,解决方案不得通过所有项目进行测试,因为这样做太慢了.

我不确定代码或xaml是否有用,它只是一个Virtualized/ Recycling ListViewItemSource与一个绑定Array.

编辑: 答案:
感谢akjoshi,我找到了方法:

  • 得到ScrollViewerListView (有FindDescendant方法,你可以做你自己用VisualTreeHelper).

  • 读取它ScrollViewer.VerticalOffset:它是显示的第一个项目的编号

  • 读它ScrollViewer.ViewportHeight:它是显示的项目数.
    Rq:CanContentScroll必须是真的.

.net c# vb.net wpf listview

14
推荐指数
2
解决办法
3万
查看次数

Dart 中有编译器预处理器吗?

由于在启动 dart 应用程序之前需要进行编译,我想知道编译器预处理器是否可用,或者计划在不久的将来用于 Dart。
到目前为止,我在网上/飞镖网站内的搜索均未成功。

(通过预处理器,我的意思是:

#define max(A,B)    ( (A) > (B) ? (A):(B)) 
Run Code Online (Sandbox Code Playgroud)

或者 :

#define NumType double
#define NumTypeZero 0.0

// used with :
NumType myNum = NumTypeZero;
Run Code Online (Sandbox Code Playgroud)

或者 :

#define DEBUG 

// use
#ifdef DEBUG
   print('var1 : $var1, var2:$var2, ...');
#endif
Run Code Online (Sandbox Code Playgroud)

)

编辑:我想知道为什么没有准备好预处理器,因为从那时起我们似乎“接近”了:
-Dart 必须扫描文件中的库依赖项才能以正确的顺序加载库。
- Dart 编辑器还会扫描文件以进行语法、类型检查和其他检查。
- 可以在编辑器中启动一些自动文件处理(我找不到有价值的链接,如果你有的话请告诉我)。

compilation dart

8
推荐指数
1
解决办法
4729
查看次数

标签 统计

.net ×1

c# ×1

compilation ×1

dart ×1

listview ×1

vb.net ×1

wpf ×1