Я пытаюсь сделать простую головоломку. Сначала пользователь импортирует фотографию из своей библиотеки, затем отображается изображение, позволяющее пользователю подтвердить, что это именно то, что он хочет использовать. Затем он нажимает кнопку «Play», которая открывает новую страницу контента, которая также должна отображать точно такое же изображение.
Я использую MVVM в этом проекте.
Первый ContentPage имеет изображение, которое связано со свойством ImageSource в ViewModel.
Когда установлен ImageSource, он также копируется в класс SharedData.
Когда пользователь нажимает кнопку «Воспроизвести», загружается новый ContentPage, и то же самое изображение должно появляться при загрузке ImageSource из класса SharedData.
Однако этого не происходит!
Кто-нибудь может понять, что я делаю не так?
Проще говоря, я просто хочу поделиться изображением между ViewModels (классами) очень простым способом. Задача не в том, чтобы настроить сложную архитектуру. Я просто хочу, чтобы эта маленькая штука сработала.
StartViewModel:
// Image
private ImageSource _imageSource = "";
public ImageSource ImgSource
{
get { return _imageSource; }
set
{
_imageSource = value;
SharedData.ImageSource = value;
OnPropertyChanged();
}
}
XAML:
<Image Margin="0,100,0,0" Source="{Binding ImgSource}" BackgroundColor="Black"></Image>
Это прекрасно работает, однако при передаче ImageSource в класс SharedData или как Параметр в MainViewModel работает неправильно
MainViewModel (второе представление):
// Image
private ImageSource _imageSource = "mouse.jpg";
public ImageSource ImgSource
{
get { return _imageSource; }
set
{
_imageSource = value;
OnPropertyChanged();
}
}
public MainViewModel()
{
SwapCMD = new CommandDelegate(action: x => { Console.WriteLine("Ignore this line"); }, executable: x => { return true; });
ImgSource = SharedData.ImageSource;
}
И, как вы можете видеть, я привязал ImageSource так же, как в предыдущий вид:
XAML:
<Image Margin="0,100,0,0" Source="{Binding ImgSource}" BackgroundColor="Black"></Image>
Что я делаю не так? Почему я не могу просто передать источник другому представлению?