Показывать определенное изображение в окне (странице, странице содержимого) при нажатии кнопки из другого окна (страницы, страницы содержимого) в C# XMAL NET MAUI

Мне нужна помощь. Я хотел бы код (C# XMAL NET MAUI), чтобы при нажатии кнопки в окне (странице или странице содержимого) определенное изображение отображалось в другом окне (странице или странице содержимого), я уже искал много форумов и YouTube и ничего не могу найти =(

Я покажу вам часть кода, чтобы дать вам представление

Кодовая страница 13

<ScrollView>
        <VerticalStackLayout BackgroundColor = "White">
            <Button x:Name = "Cambiarimagen" Text = "cambiar imagen" BackgroundColor = "Aqua" Clicked = "Cambiarimagen_Clicked" ></Button>
            <Image></Image>
        </VerticalStackLayout>
    </ScrollView>

Кодовая страница 12

public partial class Pagina12 : ContentPage
{
    public Pagina12()
    {
        InitializeComponent();
        
    }

    private void Cambiarimagen_Clicked(object sender, EventArgs e)
    {

    }
}

Заранее большое спасибо

Использовать Центр сообщений

Jason 21.11.2022 04:42

Можешь объяснить мне пожалуйста

Jonnatan Roberto TC 21.11.2022 04:44

Learn.microsoft.com/en-us/dotnet/architecture/maui/…

Jason 21.11.2022 04:56
[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный
JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы,...
Топ-10 компаний-разработчиков PHP
Топ-10 компаний-разработчиков PHP
Если вы ищете надежных разработчиков PHP рядом с вами, вот список лучших компаний по разработке PHP.
Скраппинг поиска Apple App Store с помощью Python
Скраппинг поиска Apple App Store с помощью Python
📌Примечание: В этой статье я покажу вам, как скрапировать поиск Apple App Store и получить точно такой же результат, как на Apple iMac, потому что...
Редкие достижения на Github ✨
Редкие достижения на Github ✨
Редкая коллекция доступна в профиле на GitHub ✨
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Улучшение генерации файлов Angular
Улучшение генерации файлов Angular
Angular - это фреймворк. Вы можете создать практически любое приложение без использования сторонних библиотек.
0
3
58
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Да, простой способ — использовать Публиковать и подписываться на сообщения для достижения этой цели.

Шаблон публикации-подписки — это шаблон обмена сообщениями, в котором издатели отправляют сообщения, не зная ни о каких получателях, известны как подписчики. Точно так же подписчики слушают определенные сообщения, не зная ни о каких издателях.

Опубликовать сообщение

MessagingCenter сообщения представляют собой строки. Издатели уведомляют подписчиков о сообщении с одной из перегрузок MessagingCenter.Send.

В следующем примере кода публикуется приветственное сообщение:

 MessagingCenter.Send<MainPage>(this, "Hi");

Подписаться на сообщение

Подписчики могут зарегистрироваться для получения сообщения, используя одну из перегрузок MessagingCenter.Subscribe.

В следующем примере кода показан пример этого:

MessagingCenter.Subscribe<MainPage> (this, "Hi", (sender) =>
{
    // Do something whenever the "Hi" message is received
});

Примечание:

MessagingCenter устарел в .NET 7 и заменен на WeakReferenceMessenger в CommunityToolkit.Mvvm пакете NuGet. Для получения дополнительной информации см. Messenger.

Обновлять:

Я создал простую демонстрацию для имитации этой функции. Вы можете обратиться к следующему коду:

Ферстпаже.xaml.cs

public partial class FirstPage : ContentPage 
{
      public FirstPage()
      {
            InitializeComponent();

        MessagingCenter.Subscribe<object>(this, "Hi", (sender) =>
        {
            // Do something whenever the "Hi" message is received
            mImage.Source = "grass.png";

        });
    }

    private void Button_NavigateToSecondPage(object sender, EventArgs e)
    {
        Navigation.PushModalAsync(new SecondPage());
    }
}

Ферстпаже.xaml.cs

<?xml version = "1.0" encoding = "utf-8" ?> 
<ContentPage xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class = "MauiPickerApp1121.FirstPage"
             Title = "FirstPage">
    <VerticalStackLayout>
        <Label 
            Text = "Welcome to First Page"
            VerticalOptions = "Center" 
            HorizontalOptions = "Center" />

        <Image x:Name = "mImage" Source = "cherry.png"  Margin = "20"/>

        <Button  Text = "Navigate to next page" Clicked = "Button_NavigateToSecondPage"/>
    </VerticalStackLayout>
</ContentPage>

Секондпаже.xaml.cs

public partial class SecondPage : ContentPage 
{
      public SecondPage()
      {
            InitializeComponent();
      }

      private void Button_Clicked(object sender, EventArgs e)
      {
        MessagingCenter.Send<object>(this, "Hi");
    }
}

Секондпаже.xaml

<?xml version = "1.0" encoding = "utf-8" ?> 
<ContentPage xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class = "MauiPickerApp1121.SecondPage"
             Title = "SecondPage">
    <VerticalStackLayout>
        <Label 
            Text = "Welcome to Second Page"
            VerticalOptions = "Center" 
            HorizontalOptions = "Center" />

        <Button   Text = "send message" Clicked = "Button_Clicked"  VerticalOptions = "Center"/>
    </VerticalStackLayout>
</ContentPage>

Примечание:

Перед отправкой сообщения обязательно подпишитесь на сообщение.

Не могли бы вы помочь мне с примером? Я искал информацию, но я все еще не понимаю

Jonnatan Roberto TC 22.11.2022 19:58

Привет @JonnatanRobertoTC, я обновил свой ответ. Вы можете проверить обновленную часть внизу моего ответа.

Jessie Zhang -MSFT 23.11.2022 03:18

Большое спасибо за вашу помощь, я очень ценю это, я долго искал этот код и не мог его найти, и вы сделали объяснение очень понятным

Jonnatan Roberto TC 24.11.2022 00:56

Другие вопросы по теме