Запретить DataTemplate перерабатывать привязки в .net MAUIC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Запретить DataTemplate перерабатывать привязки в .net MAUI

Сообщение Anonymous »

У меня есть модель TestItem: IBaseItem, пользовательский элемент управления TestCard, в котором x:DataType = "TestItem".
У меня также есть MainViewModel, который имеет ObservableCollection BrowsingItems
В MainPage есть словарь ресурсов с DataTemplates, один из которых содержит пользовательскую TestCard и это TouchBehaviour из набора инструментов сообщества. Данные из BrowsingItems привязаны к CollectionView с помощью DataTemplateSelector, который сравнивается на основе того, является ли IBaseItem TestItem или нет. Первая команда выполняется при нажатии кнопки мыши на TestCard. Он отображает всплывающее окно с именем элемента и набором команд на выбор (перечисление), которые я затем планирую выполнить обратно в MainViewModel.
вторая команда для добавления новых элементов 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();

}

}

После удаления TestCard удаляется, а CollectionView обновляется.
Если я добавляю еще один TestItem с помощью кнопки, он добавляется с соответствующим именем.
Однако, если я удержу его, имя, отображаемое во всплывающем окне, будет относиться к предыдущему элементу TestItem.
оно также передает ту же предыдущую ссылку команде ShowTestContextPopup. p>
Есть идеи о том, как запретить переработку старых ссылок или как обновить привязки в DataTemplate?

Подробнее здесь: https://stackoverflow.com/questions/785 ... n-net-maui
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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