如何检测 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 更改时引发。