Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在后台加载整个ListView,并在每个ListItem内获得一个UIControl_C#_Listview_Mono_Xamarin.android_Xamarin - Fatal编程技术网

C# 在后台加载整个ListView,并在每个ListItem内获得一个UIControl

C# 在后台加载整个ListView,并在每个ListItem内获得一个UIControl,c#,listview,mono,xamarin.android,xamarin,C#,Listview,Mono,Xamarin.android,Xamarin,我需要完全加载一个列表视图,并在每个列表项目内获得一个UIControl,即使项目视图没有显示在屏幕上 我尝试了ChildViewAdded事件,但只有当ListItem显示在屏幕上时才会引发该事件 因此,我需要一种在显示UI ListView之前以编程方式准备它的方法 提前感谢您的帮助。快速回答-如果您需要列表中每个项目的真实视图,那么您不想使用类似ListView的虚拟控件 相反,您可以在垂直线性布局中使用重复的自定义视图,也可以在滚动视图中使用重复的自定义视图 如果使用mvvmcross,

我需要完全加载一个列表视图,并在每个列表项目内获得一个UIControl,即使项目视图没有显示在屏幕上

我尝试了ChildViewAdded事件,但只有当ListItem显示在屏幕上时才会引发该事件

因此,我需要一种在显示UI ListView之前以编程方式准备它的方法


提前感谢您的帮助。

快速回答-如果您需要列表中每个项目的真实视图,那么您不想使用类似ListView的虚拟控件

相反,您可以在垂直线性布局中使用重复的自定义视图,也可以在滚动视图中使用重复的自定义视图

如果使用mvvmcross,您可能会发现MVXBindableLinearLayout有助于做到这一点-它有一个ItemsSource和一个模板,就像MvxBindableListView一样


我不知道你想做的是否有意义,但是如果你想做的话,上面的内容应该会帮助你


不要尝试对包含大量项目的列表使用线性布局,否则会耗尽资源。

我更改了设计以满足需要。我发现MvxBindableListView中的ChildViewAdded事件只针对屏幕上第一个可见的项目引发,但当向下滚动时,事件不会再次引发!仅当方向发生变化时,再次遵循之前的行为。不知道这是否是一个bug?请阅读我对您上一个问题的回答。这不是虫子。这是一个列表的工作原理——它重用视图。一个列表可以显示数百万条记录——因此它的设计不需要每个记录都有一个视图——只需要足够的视图就可以覆盖可见屏幕。