#c# #winui-3
Вопрос:
Я экспериментировал с Winui 3 и заметил проблему, в которой я не уверен, является ли это моей собственной ошибкой или это какая-то ошибка. У меня есть модель представления, которая при навигации также передает объект модели в модель представления, которая затем помещает данные модели в резервные поля.
В то же время ViewModel запрашивает базу данных, запускает ее через foreach и добавляет в коллекцию ObservableCollection. Что я обнаружил, в первом цикле foreach он заменяет значение резервного поля UsersID идентификатором первого элемента в цикле foreach.
public async void Initialize(object queryObject) { Model = (InspectionModel)queryObject; var users = await Task.Run(App.Repository.Users.GetCertifiersAsync); foreach (var item in users) { Certifiers.Add(item); } } public ObservableCollectionlt;UsersModelgt; Certifiers = new ObservableCollectionlt;UsersModelgt;(); public int UsersID { get { return Model.UsersID; } set { Model.UsersID = value; OnPropertyChanged(nameof(UsersID)); IsModified = true; } }
Certifiers
является ItemsSource
для выпадающего списка и UsersID
является SelectedIndex
.
Комментарии:
1. Вы очищаете
Certifiers
, прежде чем добавлять новые элементы?2. @mm8 я только что попробовал,
Certifiers.Clear();
но это ничего не изменило. Когда я прохожу через кодUsersID
, он устанавливается на то, каким он должен быть при попадании вModel = (InspectionModel)queryObject;
строку, и остается правильным значением до тех пор, пока не завершится первый цикл цикла foreach.3. Пожалуйста, поделитесь кодом модели проверки.