.net MAUI Преобразование BindingContext обратно в исходные данные, содержащие объектC#

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

Сообщение Anonymous »

Есть ли способ преобразовать свойство BindingContext обратно в исходный объект, содержащий данные?
У меня есть настраиваемый элемент управления,

Код: Выделить всё

ThingDisplay, with x:Name="thingDisplay" and x:DataType="Thing". Он просто отображает данные из модели Thing.
Model Thing.cs
:

Код: Выделить всё

public class Thing
{
public string Name { get; init; }
public string Description { get; init; }

}

Главная страница: MainViewModel содержит только это:

Код: Выделить всё

public partial class MainViewModel : ObservableObject
{

public MainViewModel()
{
CollectionItems = [.....];

}

public ObservableCollection CollectionItems{ get; private set; }

[RelayCommand]
async void ShowPopup(Thing th)
{

var popup = new Popup(th);

var res =   await Application.Current.MainPage.ShowPopupAsync(popup);

if (res == 1)

CollectionItems.Remove(th);

}

Теперь что мне нужно:

Код: Выделить всё

public Thing TODO=> //BindingContext conversion back to Thing

public ThingDisplay()
{

InitializeComponent();

}

Мне нужно передать исходный объект Thing в качестве параметра команды модели представления в TouchBehaviour.
Когда я попробовал очевидный маршрут преобразования (Thing)BindingContext , он выдал ошибку нулевой ссылки.
Я знаю, что BindingContext каким-то образом хранит исходные данные, поскольку проверка его во время предварительного просмотра XAML даже показывает, что он знает тип Thing .
Я что-то упускаю или есть какой-то альтернативный путь?
PS: Я знаю, что это чрезвычайно странный и запутанный способ. возврата данных, но у меня возникли странные проблемы с кэшированием привязки с сенсорным поведением набора инструментов при привязке к внешнему элементу управления (подробнее
https://stackoverflow.com/questions/785 ... late-from- переработка-привязок-в-нет-Мауи)

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

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

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

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

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

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

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