IcollectectionView Не обновляя пользовательский интерфейс на странице Maui ContentViewC#

Место общения программистов C#
Ответить
Anonymous
 IcollectectionView Не обновляя пользовательский интерфейс на странице Maui ContentView

Сообщение Anonymous »

У меня есть домашняя страница в качестве Content -Page с HomePageViewModel в Maui, и она имеет NavigationView с NavItems, я привязываю NavigationViewItem с командой реле в HomePageViewModel, которая загружает контент динамически на ContentPane. < /p>
Страница ContentView по инициализации конструкторов вызовов и нагрузки ObserveCollection и ContentView имеет свою собственную ViewModel и Itemsource в качестве наблюдения за IcollectionView в xaml < /p>
Нагрузки на данные совершенно хорошо при наблюдении, но не обновляет пользовательский интерфейс, чтобы отобразить Значения < /p>
Во -вторых, в элементе наблюдаемого знакомства содержится дочерний список участников, которые вложены в CollectionVie Неправильно, пожалуйста, помогите мне в этом, так как это первый раз, когда я работаю с приложением Maui < /p>
namespace KPTBMSV2.ViewModels
{
public partial class HomePageViewModel : ObservableObject
{
private readonly AuthenticationService _authenticationService;
private readonly BoardService _boardService;
HttpClient _httpClientFactory;
private readonly BoardsView _boardView;

[ObservableProperty]
private bool isAdministrator;

[ObservableProperty]
private string username;
private int _editUserAccountId;

public HomePageViewModel(AuthenticationService authenticationService, IHttpClientFactory httpClientFactory, BoardsView boardsView, BoardService service )
{
_authenticationService = authenticationService;
_httpClientFactory = httpClientFactory.CreateClient("AppHttpClient");
_boardService = service;
_boardView = boardsView;

}

[RelayCommand]
private async Task Logout()
{
_authenticationService.Logout();
await Shell.Current.GoToAsync($"//{nameof(MainPage)}");
}
public async Task Initialize()
{
await CheckAuthenticationStatus();
}
private async Task CheckAuthenticationStatus()
{
await _authenticationService.FetchUserAccountSession();
if (_authenticationService.UserAccountSession is null)
{
Shell.Current.GoToAsync($"//{nameof(MainPage)}");
}else
{
if (_httpClientFactory.DefaultRequestHeaders.Contains("Authorization"))
_httpClientFactory.DefaultRequestHeaders.Remove("Authorization");

_httpClientFactory.DefaultRequestHeaders.Add("Authorization",$"Bearer {_authenticationService.UserAccountSession.AccessToken}");
isAdministrator = _authenticationService.IsAdmin;
Username = _authenticationService.UserAccountSession.Username;

}
}

[RelayCommand]
private async Task OnBoardNav()
{
ContentPage cp = (HomePage)AppShell.Current.CurrentPage;
RadNavigationView radNavigationView = (RadNavigationView)cp.FindByName("navigationView");
radNavigationView.Content = _boardView;
}

[RelayCommand]
private async Task BoardNavClick()
{
//scheldulerBoardData = await _boardService.GetScheduledBoards();
ContentPage cp = (HomePage)AppShell.Current.CurrentPage;
RadNavigationView radNavigationView = (RadNavigationView)cp.FindByName("navigationView");
radNavigationView.Content = new BoardsView(_boardService);
}
}
}
< / Code>
contentVieven - boardvieven - xaml code < / p>




















































< /code>
boardviewmodel < /p>
namespace KPTBMSV2.ViewModels
{
public partial class BoardViewModel : ObservableObject
{
private readonly BoardService _boardService;

public BoardViewModel(BoardService boardService)
{
_boardService = boardService;
GetBoardEvents();
//
}

[ObservableProperty]
public ObservableCollection scheldulerBoardData;

private async Task GetBoardEvents()
{
ScheldulerBoardData = await _boardService.GetScheduledBoards();
//OnPropertyChanged(nameof(ScheldulerBoardData));
}

[RelayCommand]
private void EventTapped()
{

}
}
}
< /code>
домашняя страница --- xaml < /p>
















Подробнее здесь: https://stackoverflow.com/questions/794 ... tview-page
Ответить

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

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

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

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

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