.net 9 Maui CollectionView не показывает данныеC#

Место общения программистов C#
Ответить
Anonymous
 .net 9 Maui CollectionView не показывает данные

Сообщение Anonymous »

Я использую Microsoft Visual Studio Community 2022 (64-разрядная версия) версии 17.12.3. Я также использую CommunityToolkit.Mvvm. У меня есть CasesPage.xaml, CasesPage.xaml.cs и CasesPageModel с ReportedCasesView.cs, который является файлом модели. Я пытаюсь отобразить результат запроса в CollectionView, но данные не отображаются, хотя указано количество полученных записей. Ниже приведены файлы и код, с помощью которых я пытался добиться результатов.
Файл CasesPage.xaml: Файл CasesPage.xaml.cs

Код: Выделить всё

using Bmcl.GhanaLawReport.Models;
using Bmcl.GhanaLawReport.PageModels;
using Bmcl.GhanaLawReport.Services;

namespace Bmcl.GhanaLawReport.Pages;

public partial class CasesPage : ContentPage
{
public CasesPage()
{
InitializeComponent();
}

private void ReportYear_StateChanged(object sender, Syncfusion.Maui.Buttons.StateChangedEventArgs e)
{
if(e.IsChecked.HasValue && e.IsChecked.Value)
{
AppProperties.ReportedCasesSearchOption = 1;
LawReportComboBox.IsEnabled = true;
}
else
{
LawReportComboBox.IsEnabled = false;
}
}

private void AnyTextCaseTitle_StateChanged(object sender, Syncfusion.Maui.Buttons.StateChangedEventArgs e)
{
if(e.IsChecked.HasValue && e.IsChecked.Value)
{
AppProperties.ReportedCasesSearchOption = 2;
CaseTitleEntry.IsEnabled = true;
}
else
{
CaseTitleEntry.IsEnabled = false;
}
}

private void CaseTitleEntry_TextChanged(object sender, TextChangedEventArgs e)
{
AppProperties.ReportedCasesAnyTextParameter = CaseTitleEntry.Text;
}

private void LawReportComboBox_SelectionChanged(object sender, Syncfusion.Maui.Inputs.SelectionChangedEventArgs e)
{
AppProperties.LawReportComboParameter = LawReportComboBox.Text;
}

}
Файл CasesPageModel.cs (если хотите, ViewModel)

Код: Выделить всё

using Bmcl.GhanaLawReport.Models;
using Bmcl.GhanaLawReport.Services;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System.Collections.ObjectModel;

namespace Bmcl.GhanaLawReport.PageModels
{
public partial class CasesPageModel : ObservableObject
{
private Int32 totalRecords = 0;

[ObservableProperty]
string recordsReturned = "";

[ObservableProperty]
ObservableCollection caseTitlesList = [];

[ObservableProperty]
ObservableCollection  lawReportList = [];

[ObservableProperty]
int indexId = 0;

[ObservableProperty]
int caseId = 0;

[ObservableProperty]
int courtId = 0;

[ObservableProperty]
int reportId = 0;

[ObservableProperty]
string? caseName;

[ObservableProperty]
string? courtName;

[ObservableProperty]
string? reportName;

[ObservableProperty]
string? judges;

public CasesPageModel()
{
GetLawReports();
}

private void GetLawReports()
{
var lawReports = Data.LawReport.ReadAllLawReports.Read();
if (lawReports != null)
LawReportList = new ObservableCollection(lawReports);
}

[RelayCommand]
public async Task Search()
{
await GetSerchOptions();
}

private async Task GetSerchOptions()
{
switch(AppProperties.ReportedCasesSearchOption)
{
case 1:
if(AppProperties.LawReportComboParameter == string.Empty ||
AppProperties.LawReportComboParameter == null)
{
//--Message here
if(Application.Current?.Windows.Count > 0)
{
var page = Application.Current.Windows[0].Page;
if(page != null)
{
await page.DisplayAlert("Reported Case Error",
"Please select a Law Report ", "OK");
}
}
return;
}

var caseTitles = await Data.ReportedCase.ReadCaseTitleByReport.ReadAsync(AppProperties.LawReportComboParameter);

if (caseTitles != null)
{
CaseTitlesList = new ObservableCollection(caseTitles);
totalRecords = caseTitles.Count;
RecordsReturned = $"Showing {totalRecords} Returned Records";
}

break;
case 2:
if(AppProperties.ReportedCasesAnyTextParameter == string.Empty ||
AppProperties.ReportedCasesAnyTextParameter == null)
{
//--Message here
if(Application.Current?.Windows.Count > 0)
{
var page = Application.Current.Windows[0].Page;
if(page != null)
{
await page.DisplayAlert("Reported Case Error",
"Please supply a Case Title ", "OK");
}
}
return;
}

var cases = await Data.ReportedCase.ReadCaseTitleByAnyText.ReadAsync(AppProperties.ReportedCasesAnyTextParameter);

if (cases != null)
{
CaseTitlesList = new ObservableCollection(cases);
totalRecords = cases.Count;
RecordsReturned = $"Showing {totalRecords} Returned Records";
}
break;
}
}
}
}

ReportedCasesView (файл модели)

Код: Выделить всё

namespace Bmcl.GhanaLawReport.Models
{
public class ReportedCasesView
{
public int IndexId { get; set; }
public int CaseId { get; set; }
public int CourtId { get; set; }
public int ReportId { get; set; }
public string? CaseName { get; set; }
public string? CourtName { get; set; }
public string? ReportName { get; set; }
public string? Judges { get; set; }
}
}

То, чего я хочу достичь, очень просто. Чтобы результат запрошенных данных отображался в CollectionView.
Заранее благодарим вас за помощь.

Подробнее здесь: https://stackoverflow.com/questions/793 ... owing-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»