Недавно я заметил проблему с моим списком и моей локальной базой данных с использованием sqlite и Xamarin.Forms, моя проблема в том, что когда данные моей таблицы выгружаются в мою ObservableCollection (исходный элемент ListView) и мое представление списка показывает это, ListView не показывает все элементы, которые должны отображаться, я пробовал, добавляя динамически (без базы данных) элементы в свое представление списка, и, таким образом, проблема, кажется, исчезает, я уверен, что проблема не в из моей базы данных sqlite, потому что также проблема в одном прошлом проекте, в котором я использую api для получения моей информации, проблема была такой же, поэтому я пришел к выводу, что проблема заключалась в отображении внешней информации в моем ListView, поэтому кто-нибудь знает возможное решение для моей проблемы, наоборот, было бы действительно полезно, если бы кто-то мог попробовать сделать проект со списком и базой данных sqlite.
Важный факт: ListView
в моем XAML имеет контроллер Frame
, поэтому, когда я его не использую, он показывает мне все элементы из базы данных, я также не знаю, почему
мой текущий код XAML:
<ListView
SeparatorVisibility="None"
IsGroupingEnabled="True"
ItemsSource="{Binding TasksCollection}"
GroupDisplayBinding="{Binding Key}"
HasUnevenRows="True">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<TextCell
Text="{Binding Key}"
TextColor="White"/>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Frame
HeightRequest="150"
Margin="10"
HasShadow="True"
CornerRadius="25"
BackgroundColor="White">
<Grid
Padding="5">
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding GridExpandCommand}"/>
</Grid.GestureRecognizers>
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label
Grid.Column="0"
Grid.Row="0"
Text="{Binding Name}"
FontAttributes="Bold"
FontSize="Small"
HorizontalOptions="Start"
VerticalOptions="Start">
</Label>
<Image
HeightRequest="25"
Grid.Row="0"
Grid.Column="1"
Source="{Binding TaskIcon}"
HorizontalOptions="End"
VerticalOptions="Start">
</Image>
<Label
Grid.Row="1"
Grid.Column="0"
Text="{Binding Description}"
FontAttributes="Bold"
FontSize="Small"
HorizontalOptions="Start"
VerticalOptions="End">
</Label>
<Button
Grid.Row="1"
Grid.Column="1"
Text="{Binding IsDone}"
TextColor="White"
FontAttributes="Bold"
VerticalOptions="CenterAndExpand"
HorizontalOptions="Center"
FontSize="Small"
CornerRadius="100"
BackgroundColor="LawnGreen">
</Button>
</Grid>
</Frame>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Мой код для добавления элементов в коллекцию (я использую MvvmHelpers для группировки данных с помощью Grouping) следующий:
foreach (var item in new string[]
{ Languages.HightPriorText, Languages.MediumPriorText, Languages.LessPriorityText })
{
var sorted = from tasks in tableList
orderby tasks.PriorityLevel // orberby is a keyword of System.Linq namespace
group tasks by tasks.PriorityLevel into taskList
select new Grouping<string, TaskItemViewModel>(taskList.Key, taskList);
List<Grouping<string, TaskItemViewModel>> listItems = sorted.Where(t => t.Key == item).ToList();
foreach (var item2 in listItems)
VeryImportantList.Add(item2);
}
Результат следующий:
Изображение результата работы приложения
При любом ответе я буду замечен по этому поводу, а также по любому вопросу, было бы здорово помочь, пожалуйста!
TaskCollection
? - person Paul Kertscher   schedule 29.10.2019