Xamarin Telerik RadListview не привязывается в iOS

#xamarin.forms #data-binding #xamarin.ios #telerik

Вопрос:

У меня есть довольно простое представление списка, в котором отображаются 3 столбца, которое отлично работает для Android. Когда я запускаю его в iOS, listview есть (я поместил странный цветной фон, чтобы убедиться, что он виден), но в нем нет элементов.

 <telerikDataControls:RadListView Grid.Row="2" x:Name="Locations" ItemsSource="{Binding CurrentLocationList}" 
                                 VerticalScrollBarVisibility="Always" VerticalOptions="FillAndExpand" ItemTapped="Locations_ItemTapped" BackgroundColor="Aqua">
    <telerikDataControls:RadListView.ItemTemplate>
        <DataTemplate>
            <telerikListView:ListViewTemplateCell>
                <telerikListView:ListViewTemplateCell.View>
                    <StackLayout Orientation="Horizontal" Margin="5,5,5,5">
                        <Label Text="{Binding Name}" FontSize="20" VerticalOptions="Center" />
                        <Label Text="{Binding Id}" HorizontalOptions="EndAndExpand" FontSize="20" VerticalOptions="Center" />
                        <local:GrayRadioButton x:Name="rbtSelectedLocation" IsChecked="{Binding Selected}" GroupName="grpLocation" />
                    </StackLayout>
                </telerikListView:ListViewTemplateCell.View>
            </telerikListView:ListViewTemplateCell>
        </DataTemplate>
    </telerikDataControls:RadListView.ItemTemplate>
</telerikDataControls:RadListView>
 

Есть ли какие-то настройки, необходимые для его работы в iOS?

Спасибо.

Я обновляю некоторые снимки экрана.

Android:

Android

iOS

iOS

Комментарии:

1. Как заявил FreakyAli, у вас, вероятно, есть представление radlist в родительском элементе StackLayout или в строке Grid.row, в которой оно находится, установлено значение Height=Auto. Внимательно прочитайте мою статью здесь документы. telerik.com/devtools/xamarin/troubleshooting/…

2. Спасибо за ответ. Я убедился, что все это правильно. Элемент управления находится внутри сетки, назначенной строке с определением высоты»*». Я также установил его на фиксированное значение, и это не имело значения. Есть еще какие-нибудь мысли?

3. Кроме того, он отлично работает для Android.

4. Скриншоты с цветом BG для устранения неполадок были полезны, это подтверждает, что контейнер RLV находится там. Что произойдет, если вы удалите VerticalOptions=FillAndExpand? Кроме того, упростите содержимое шаблона до простой метки (чтобы временно исключить пользовательскую кнопку).

5. Я удалил пользовательский элемент управления и вертикальные настройки с тем же результатом (хотя это напомнило мне, что мне тоже нужно поместить пользовательские инструкции для iOS!). Я открою билет.

Ответ №1:

Всякий раз, когда возникает проблема с тем, что просмотры Telerik не отображаются, проблема всегда будет заключаться в том, что пакеты недоступны в собственном проекте или в проекте форм.

На экране «Начало работы» в RadListView вы можете найти библиотеки DLL, которые понадобятся вашему проекту.

Убедитесь, что в вашем портативном проекте есть следующие библиотеки DLL:

 Telerik.XamarinForms.Common.dll
Telerik.XamarinForms.DataControls.dll
Telerik.XamarinForms.Primitives.dll
Telerik.XamarinForms.SkiSharp.dll
 

И ваш проект iOS должен иметь следующее:

 Telerik.Xamarin.iOS.dll
Telerik.XamarinForms.Common.dll
Telerik.XamarinForms.DataControls.dll
Telerik.XamarinForms.Primitives.dll
Telerik.XamarinForms.SkiSharp.dll
 

Также убедитесь, что вы прочитали это предупреждение:

ВНИМАНИЕ: Элемент управления RadListView обеспечивает виртуализацию пользовательского интерфейса, для этой функции требуется, чтобы визуальный родительский элемент предоставлял вертикальное или горизонтальное пространство. Чтобы избежать нарушения механизмов виртуализации пользовательского интерфейса или жестов, пожалуйста, следуйте этим правилам: Не размещайте элемент управления RadListView внутри стека.Не размещайте элемент управления radlistview внутри представления прокрутки. Не устанавливайте элемент управления radlistview на высоту строки сетки=»Авто». Для получения дополнительной информации и решений для этих макетов, пожалуйста, проверьте, что элементы управления не отображаются в статье.

Гудлак, не стесняйтесь возвращаться, если у вас есть вопросы.

Комментарии:

1. Спасибо за ответ. Я убедился, что все это правильно. Элемент управления находится внутри сетки, назначенной строке с определением высоты»*». Я также установил его на фиксированное значение, и это не имело значения. Есть еще какие-нибудь мысли?

2. Можете ли вы попробовать разместить его в другом макете? Или удалите его из сетки и посмотрите, сработает ли это для вас?

3. Я поместил его на страницу, где это был единственный элемент управления с тем же результатом.

4. Ты проверил эту штуку с библиотекой dll?

5. Да, я это сделал. Все ссылки есть.

Ответ №2:

Каким-то образом мой проект iOS ссылался на переносные двоичные файлы, а не на двоичные файлы iOS. Когда я исправил пути, элементы появились в представлении списка.