Изменение страницы FlyoutPage.Detail при нажатии кнопки через ViewModelC#

Место общения программистов C#
Ответить
Anonymous
 Изменение страницы FlyoutPage.Detail при нажатии кнопки через ViewModel

Сообщение Anonymous »

Ситуация
  • У меня есть базовая всплывающая страница, в которой есть всплывающее окно с кнопками меню и главной страницей в качестве подробной информации.
  • Кнопки в FlyoutPage.Flyout запускают команду
  • Команда запускает метод в ViewModel:

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

    public class ViewModelCommands : ViewModel
{
public ViewModelCommands() : base() { }
public ICommand NavigateToPageCommand { get; private set; }

public override void Init()
{
base.Init();
NavigateToPageCommand = new Command((page) => NavigateToPage((string)page), (page) => true);
}
}

[*]Метод в ВМ должен каким-то образом заменять FlyoutPage.Detail

Вопрос
Все приведенные выше привязки работают должным образом. Вопрос в том, как мне изменить FlyoutPage.Detail... Возможно ли это с помощью описанного выше подхода или нужно сделать по-другому?
Сама виртуальная машина не может знать о Details в Model, поэтому он не может обновить/заменить ее напрямую.
Метод (4) может обновить какое-либо свойство, связанное с xaml/code-behind, но я понятия не имею, как (и если это вообще возможно) возможно) для привязки: Кроме того, создавать NavigationPage в виртуальной машине и привязываться к ней, похоже, не очень хорошая идея.
Нажатый метод будет находиться в FlyoutPage.Flyout(2), и ему придется каким-то образом обновлять Details в FlyoutPage (1), поэтому это не кажется очень привлекательным. Кроме того, мне хотелось бы держаться подальше от кода программной части.
Я бы хотел сделать это в соответствии с MVVM, но буду рад любому работающему решению.
Сводка
  • Мне нужно изменить FlyoutPage.Detail при нажатии кнопки
    < li>было бы лучше использовать команды и, если возможно, придерживаться строго MVVM
  • Мне было интересно связать его каким-то образом в xaml или коде программной части
  • возможно, какое-то прямое изменение кода программной части, но это потребует изменения свойства одной страницы со второй страницы.
  • возможно, будет способ каким-то образом вернуть правильную страницу из команды и затем заменить ее
    li>


Подробнее здесь: https://stackoverflow.com/questions/791 ... -viewmodel
Ответить

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

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

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

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

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