如何扩展 ListView 以自动调整大小?

nic*_*cks 3 listview xamarin xamarin.forms

在发现没有明确的方法来调整 ListView 的大小以适应内容后,我决定扩展 ListView 以在每次添加孩子时调整自己的大小。我试过这段代码,但没有用。可能是什么问题呢?我该如何解决?

public class SmartListView : ListView
{
    public SmartListView() : base()
    {
        ChildAdded += Resize;
    }

    private void Resize(object sender, ElementEventArgs e)
    {
        HeightRequest = Height + ((ViewCell)sender).Height;
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,回调Resize从未被击中。

Rod*_* E. 5

订阅你的 CollectionChanged 是ObservableCollection这样的:

MyObservableCollection.CollectionChanged += (sender, e) =>
            {
                var adjust = Device.OS != TargetPlatform.Android ? 1 : -MyObservableCollection.Count + 1;
                myListView.HeightRequest = (MyObservableCollection.Count * myListView.RowHeight) - adjust;
            };
Run Code Online (Sandbox Code Playgroud)