Xamarin.forms 当CollectionView包含在ScrollView和ScrollView';可见的是假的

Xamarin.forms 当CollectionView包含在ScrollView和ScrollView';可见的是假的,xamarin.forms,xamarin.ios,Xamarin.forms,Xamarin.ios,我陷入了一个奇怪的问题 我有不同的简单布局,如下所示 <ScrollView> <CollectionView /> </ScrollView> 视图模型 public类MainPageViewModel:INotifyPropertyChanged { 私有可观测集合_itemSource; 公共ObservableCollection ItemSource=>\u ItemSource; 公共MainPageViewModel() { _item

我陷入了一个奇怪的问题

我有不同的简单布局,如下所示

<ScrollView>
    <CollectionView />
</ScrollView>
视图模型
public类MainPageViewModel:INotifyPropertyChanged
{
私有可观测集合_itemSource;
公共ObservableCollection ItemSource=>\u ItemSource;
公共MainPageViewModel()
{
_itemSource=新的ObservableCollection();
对于(int i=0;i<28;i++)
_添加(新对象());
}
公共事件属性更改事件处理程序属性更改;
私有void NotifyPropertyChanged([CallerMemberName]字符串propertyName=”“)
{
PropertyChanged?.Invoke(这是新的PropertyChangedEventArgs(propertyName));
}
}

完整的源代码在

上,这似乎是ScrollView存在的问题。为什么在默认情况下将IsVisible设置为False?最好使用数据绑定,并在加载页面后将该值设置为False。@LucasZhang MSFT原始源代码使用数据绑定。我只是为这个问题做了一个清晰的示例。这似乎是ScrollView存在的问题(当使用StackLayout和Grid时,它可以正常工作)。你可以发布这个问题并分享链接。我们会关注它。
<ContentPage
    xmlns="http://xamarin.com/schemas/2014/forms"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:Test="clr-namespace:CollectionViewTest"
    x:Class="CollectionViewTest.MainPage">
        <ScrollView IsVisible="False">
        <CollectionView
            ItemsSource="{Binding ItemSource}"
            SelectionMode="Single">

            <CollectionView.ItemsLayout>
                <GridItemsLayout
                    Orientation="Vertical"
                    Span="4"
                    VerticalItemSpacing="10"/>
            </CollectionView.ItemsLayout>

            <CollectionView.ItemTemplate>
                <DataTemplate>
                    <Image
                        Source="{Test:ImageResource CollectionViewTest.waterfront.jpg}"
                        Aspect="AspectFit"
                        WidthRequest="70"
                        HeightRequest="70"/>
                </DataTemplate>
            </CollectionView.ItemTemplate>

        </CollectionView>
    </ScrollView>
</ContentPage>
public class MainPageViewModel : INotifyPropertyChanged
{
    private ObservableCollection<object> _itemSource;
    public ObservableCollection<object> ItemSource => _itemSource;

    public MainPageViewModel()
    {
        _itemSource = new ObservableCollection<object>();
        for (int i = 0; i < 28; i++)
            _itemSource.Add(new object());
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}