默认情况下,WPF ListView
(带有GridView
)是虚拟化的。ItemSource
因此,当我使用 MVVM 模式(使用 Caliburn.Micro 但我想这并不重要)时,我将我的属性绑定到 ViewModel 中的可观察集合。
当ListView使用(在范围内并由 UI listviewitem 表示)和未使用时(不再在范围内并在用户界面)?
延迟加载一些详细数据会非常好,但仅适用于可见记录。
默认情况下,WPF ListView
(带有GridView
)是虚拟化的。ItemSource
因此,当我使用 MVVM 模式(使用 Caliburn.Micro 但我想这并不重要)时,我将我的属性绑定到 ViewModel 中的可观察集合。
当ListView使用(在范围内并由 UI listviewitem 表示)和未使用时(不再在范围内并在用户界面)?
延迟加载一些详细数据会非常好,但仅适用于可见记录。
你可以有一个派生的 ListView 重写PrepareContainerForItemOverride
和ClearContainerForItemOverride
方法:
public class MyListView : ListView
{
protected override void PrepareContainerForItemOverride(
DependencyObject element, object item)
{
base.PrepareContainerForItemOverride(element, item);
((MyItem)item).DoSomethingOnPrepare();
}
protected override void ClearContainerForItemOverride(
DependencyObject element, object item)
{
((MyItem)item).DoSomethingOnClear();
base.ClearContainerForItemOverride(element, item);
}
}