如何检测 MvxListView 何时绑定并加载其绑定?
How to detect when MvxListView is bound and has loaded its bindings?
我已将 MvxListView 继承到我的 CustomMvxListView 中,在添加或删除子项时我对可视化做了一些事情。
效果很好,但当很多项目被绑定时可能会很慢。
有没有办法检测 Mvx 视图控件何时绑定并首先加载绑定数据?
自己找到了一个很好的解决方案;
要在 ListView 中跟踪 Android 中的 Itemsource 更改,您可以使用 DataSetObserver。
赞:
internal class MyObserver : DataSetObserver
{
private readonly object view;
public MvxListViewNonScrollableObserver(ViewToTrack view)
{
tView = view;
DoSomething():
}
public override void OnChanged()
{
base.OnChanged();
DoSomething():
}
}
通过以下方式将其添加到 ListView:
class MyMvxListView : MvxListView
{
protected override void OnAttachedToWindow()
{
base.OnAttachedToWindow();
itemsourceObserver = new MyObserver(this);
Adapter.RegisterDataSetObserver(itemsourceObserver);
}
protected override void OnDetachedFromWindow()
{
if (itemsourceObserver != null)
{
Adapter.UnregisterDataSetObserver(itemsourceObserver);
itemsourceObserver = null;
}
base.OnDetachedFromWindow();
}
public void DoSomething()
{
}
DoSomething() 在加载后和每次 itemsource 更改时引发。
我已将 MvxListView 继承到我的 CustomMvxListView 中,在添加或删除子项时我对可视化做了一些事情。
效果很好,但当很多项目被绑定时可能会很慢。
有没有办法检测 Mvx 视图控件何时绑定并首先加载绑定数据?
自己找到了一个很好的解决方案; 要在 ListView 中跟踪 Android 中的 Itemsource 更改,您可以使用 DataSetObserver。
赞:
internal class MyObserver : DataSetObserver
{
private readonly object view;
public MvxListViewNonScrollableObserver(ViewToTrack view)
{
tView = view;
DoSomething():
}
public override void OnChanged()
{
base.OnChanged();
DoSomething():
}
}
通过以下方式将其添加到 ListView:
class MyMvxListView : MvxListView
{
protected override void OnAttachedToWindow()
{
base.OnAttachedToWindow();
itemsourceObserver = new MyObserver(this);
Adapter.RegisterDataSetObserver(itemsourceObserver);
}
protected override void OnDetachedFromWindow()
{
if (itemsourceObserver != null)
{
Adapter.UnregisterDataSetObserver(itemsourceObserver);
itemsourceObserver = null;
}
base.OnDetachedFromWindow();
}
public void DoSomething()
{
}
DoSomething() 在加载后和每次 itemsource 更改时引发。