У меня также есть MainViewModel, который имеет ObservableCollection BrowsingItems
В MainPage есть словарь ресурсов с DataTemplates, один из которых содержит пользовательскую TestCard и это TouchBehaviour из набора инструментов сообщества. Данные из BrowsingItems привязаны к CollectionView с помощью DataTemplateSelector, который сравнивается на основе того, является ли IBaseItem TestItem или нет.
Код: Выделить всё
Код: Выделить всё
вторая команда для добавления новых элементов TestItem на основе имени, выбранного в другом всплывающем окне. Команда используется в привязке к другой кнопке на странице.
Код: Выделить всё
[RelayCommand]
async void ShowTestContextPopup(TestItem testItem)
{
var popup = new TestCardContextPopup(testItem.Name);
var result = await Application.Current.MainPage.ShowPopupAsync(popup);
TestCardContextPopup.TestCommandType? testCommand = (TestCardContextPopup.TestCommandType?) result;
if (testCommand == null) return;
switch (testCommand)
{
case TestCardContextPopup.TestCommandType.DELETE:
BrowsingItems.Remove(testItem);
break;
}
}
[RelayCommand]
async void AddTest()
{
var popup = new CreateBrowsingItemPopup();
var name = await Application.Current.MainPage.ShowPopupAsync(popup);
if (name != null)
{
BrowsingItems.Add(new TestItem() { Name = (string)name});
Sort();
}
}
Если я добавляю еще один TestItem с помощью кнопки, он добавляется с соответствующим именем.
Однако, если я удержу его, имя, отображаемое во всплывающем окне, будет относиться к предыдущему элементу TestItem.
оно также передает ту же предыдущую ссылку команде ShowTestContextPopup. p>
Есть идеи о том, как запретить переработку старых ссылок или как обновить привязки в DataTemplate?
Подробнее здесь: https://stackoverflow.com/questions/785 ... n-net-maui