Xamarin: изменить значение GridItemLayout в коде позади - PullRequest
0 голосов
/ 17 июня 2019
 <CollectionView Grid.Row="2" Grid.Column="0" x:Name="collectionViewItemsLayout" ItemsSource="{Binding BaseCustomersCards}"  ItemTemplate="{StaticResource CustomerCardTemplateSelector}" >
                <CollectionView.ItemsLayout>
                    <GridItemsLayout Orientation="Vertical" Span="5" />
                </CollectionView.ItemsLayout>
            </CollectionView>

У меня есть эта коллекция, но я пытаюсь изменить диапазон для телефона-планшета.По умолчанию 5, но значение телефона должно быть 3.

  var idiom = DeviceInfo.Idiom;
            if (idiom == DeviceIdiom.Phone)
            {
                collectionViewItemsLayout.SetValue(GridItemsLayout.SpanProperty, 3);
            }

Я сделал это в коде, чтобы изменить его, метод срабатывает, но ничего не меняет.Я попытался поставить 3 как строку и как чистое значение.Я также попытался вставить x: name в атрибут, но он не может туда попасть.

1 Ответ

1 голос
/ 17 июня 2019

Работает, создав новый GridItem и установив его вместо

 if (idiom == DeviceIdiom.Phone)
            {
                var grid = new GridItemsLayout(ItemsLayoutOrientation.Vertical)
                {
                    Span = 3,
                };

                collectionViewItemsLayout.SetValue(CollectionView.ItemsLayoutProperty, grid);
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...