Я больше не могу получить доступ к другому контенту после привязки данных к mainpage.xaml.C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Я больше не могу получить доступ к другому контенту после привязки данных к mainpage.xaml.

Сообщение Anonymous »


Я новичок в .net maui и C# в целом, и я пытаюсь запрограммировать игру Wordle, и я столкнулся с проблемой: при использовании привязки данных на моей главной странице возникло несколько проблем:

Главная страница — единственная страница, к которой вы можете получить доступ во время работы программы, как будто приложение буквально заблокировано на ней. Кнопка, которая мне нужна, чтобы уйти со страницы, больше не работает, она просто здесь И функция, которая мне нужна, чтобы получить случайное слово из длинного списка с github, больше не срабатывает. Я использую набор инструментов сообщества, и для его правильной работы у меня должно быть все необходимое

Будем очень благодарны за любую помощь.
с использованием системы; использование System.Collections.ObjectModel; используя System.Net.Http; использование System.ComponentModel; использование System.Runtime.CompilerServices; использование Microsoft.Maui.Storage; использование Wordle.ViewModel; пространство имен Wordle { общедоступный частичный класс MainPage: ContentPage { //Объявление переменных частный случайный рандом; частный список играСлова; частный HttpClient http; частная строка userGuess; частная строка CorrectWord; частные международные игры, сыгранные; частный int numWords; общедоступная строка имя_пользователя; личный строковый пароль; общедоступная строка targetFile; public bool isBusy; общедоступная MainPage (WordleViewModel newView) { ИнициализироватьКомпонент(); BindingContext = новыйView; gameWords = новый список(); рандом = новый случайный (); numWords = gameWords.Count; Задача Task = getGameWords(); DisplayAlert("Тест", CorrectWord, "ОК"); } публичная главная страница() { ИнициализироватьКомпонент(); BindingContext = новая WordleViewModel(); gameWords = новый список(); рандом = новый случайный (); numWords = gameWords.Count; Задача Task = getGameWords(); DisplayAlert("Тест", CorrectWord, "ОК"); } общедоступная асинхронная задача getGameWords() { targetFile = System.IO.Path.Combine(FileSystem.Current.AppDataDirectory, "words.txt"); если (!File.Exists(targetFile)) { http = новый HttpClient(); var ответ = ожидайте http.GetAsync("https://raw.githubusercontent.com/DonH- ... /words.txt"); если (ответ.IsSuccessStatusCode) { содержимое строки = ожидайте ответа.Content.ReadAsStringAsync(); используя (писатель StreamWriter = новый StreamWriter (targetFile)) { писатель.Запись(содержимое); } используя (StreamReader s = новый StreamReader(targetFile)) { строковая линия = ""; while ((line = s.ReadLine()) != null) { gameWords.Add(строка); Console.WriteLine(строка); число слов++; } } получитьРандСлово(); } } еще { используя (StreamReader s = новый StreamReader(targetFile)) { строковая линия = ""; while ((line = s.ReadLine()) != null) { gameWords.Add(строка); Console.WriteLine(строка); число слов++; } } получитьРандСлово(); } } публичная пустота getRandWord() { рандом = новый случайный (); правильноеСлово = gameWords[rand.Next(gameWords.Count)]; } частный void SignIn (отправитель объекта, EventArgs e) { Navigation.PushAsync(новый вход()); } } } //Это модель представления, которую я использую использование CommunityToolkit.Mvvm.ComponentModel; использование Wordle.Модели; используя CommunityToolkit.Mvvm.Input; пространство имен Wordle.ViewModel { публичный частичный класс WordleViewModel: НаблюдаемыйОбъект { //Объявление переменных [Обсерваблесвойство] общественный GameRows [] currentRow; частный int currentRowIndex; частный int currentColumnIndex; символ [] ответ; символ [] userGuess; //Конструктор для инициализации некоторых аспектов ViewModel публичная модель WordleViewModel() { currentRow = новые GameRows[6] { новые GameRows(), новые GameRows(), новые GameRows(), новые GameRows(), новые GameRows(), новые GameRows() }; //Тестирование сохранения правильного ответа ответ = "тесты".ToCharArray(); } //Переносим пользователя в следующий раз каждый раз, когда он нажимает Enter //[IКоманда] публичная недействительность следующей строки() { //Контролируем, когда переместить пользователя на следующую строку вар isValid = правда; если (действителен) { если (текущийКолумнИндекс! = 5) { возвращаться; } если (текущийИндексСтроки == 5) { } еще { текущийРовИндекс++; текущийКолумнИндекс = 0; } } } //[IКоманда] общественный недействительный пользовательEntry() { если (текущийИндексКолонки == 5) { возвращаться; } } } } //Это модель, которую я использую использование CommunityToolkit.Mvvm.ComponentModel; пространство имен Wordle.Models { публичный класс GameRows { //Объявление переменных интервал текущей строки; интервал текущегоCol; символ [] ответ; символ [] userGuess; //Конструктор для инициализации некоторых переменных класса Model общедоступные GameRows() { CorrectLetters = новые буквы[5] { новые буквы(), новые буквы(), новые буквы(), новые буквы(), новые буквы(), }; } //Правильные буквы общественные письма [] CorrectLetters {get; набор; } public void ValidateAnswer(char[] CorrectWord) { } } Публичный частичный класс Letters: ObservableObject { [Обсерваблесвойство] частный символ userInput; [Обсерваблесвойство] частный цвет colorChange; общественный символ CorrectLetter {получить; набор; } общественный цвет bgCol {get; набор; } } }
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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