Refre sh Страница PopAsyn c () - PullRequest
1 голос
/ 13 января 2020

У меня есть экран с цифровой подписью, который при сохранении или возврате выполняет postasyn c или postmodalasyn c, когда экран возвращается ко мне, не перезагружается. Как я могу заставить страницу перезагрузиться или обновить sh?

 <Grid BackgroundColor="WhiteSmoke" Padding="0" RowSpacing="0" VerticalOptions="StartAndExpand">
            <Grid.RowDefinitions>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
            <ContentView Margin="10,0,10,5" Padding="0" BackgroundColor="LightGray" HeightRequest="500">
                    <StackLayout Padding="5,0,5,5" BackgroundColor="White" Spacing="1">
                        <Label 
                Text="Firma Policia Que Realizo Visita"
                HorizontalOptions="Center"
                TextColor="Black" 
                FontSize="Large" 
                FontAttributes="Bold"

                 />

                    <Frame  HasShadow="true" 
                         Padding="8"
                        VerticalOptions="CenterAndExpand">
                        <signature:SignaturePadView  
                            x:Name="SignatureView" 

                            BindingContext="{Binding SignatureView}"
                            WidthRequest="280"
                        HeightRequest="300"
                            CaptionText="" 
                            CaptionTextColor="Blue" 
                            ClearText=""
                            PromptText=""
                            PromptTextColor="Green" 
                            BackgroundColor="WhiteSmoke" 
                            SignatureLineColor="Black" 
                            StrokeWidth="3" 
                            StrokeColor="Black" />
                    </Frame>
                </StackLayout>
                </ContentView>


        </Grid>


        <StackLayout Orientation="Horizontal" Padding="2" Spacing="2">
            <Button 
                    HorizontalOptions="FillAndExpand"
                    HeightRequest="40"                
                    Text="Guardar"
                    TextColor="{x:StaticResource WhiteColor}"
                    FontSize="Small"
                    VerticalOptions="Center"
                    BackgroundColor="{x:StaticResource GreenButton}"
                 Clicked="Button_Clicked">

            </Button>
            <Button                  
                    HorizontalOptions="FillAndExpand"
                    HeightRequest="40"                
                    Text="Limpiar"
                    TextColor="{x:StaticResource WhiteColor}"
                    FontSize="Small"
                    VerticalOptions="Center"
                    BackgroundColor="{x:StaticResource SicoqYellowColor}"
                   Clicked="Button_Clicked_1">
            </Button>


        </StackLayout>

Это модель представления, которая делает службу backbuttoncommand

public Task RemoveLastModalFromBack(object parameter,bool animated = false)
    {
        var mainPage = Application.Current.MainPage as NavigationView;
        if (mainPage != null)
        {
            mainPage.Navigation.PopAsync(animated);
        }

        return Task.FromResult(true);
    }

Это модель представления, которая получает данные подписи

 private async Task BackButton()
    {

        try
        {
            IsBusy = true;



            await NavigationService.RemoveLastModalFromBack(str3);

            o


        }
        catch (Exception e)
        {
            IsBusy = false;
            // await DialogService.DisplayAlertAsync("Error", e.Message, "Aceptar");

        }
        finally
        {
            IsBusy = false;
        }
    }

Главная страница цифровой подписи - это цифровые подписи, когда вы сохраняете или возвращаете страницу цифровых подписей для перезагрузки

1 Ответ

1 голос
/ 16 января 2020

Хотите ли вы добиться результата, подобного следующему GIF? enter image description here

Если это так, вы можете использовать MessagingCenter для достижения этого.

Мы можем использовать send метод MessagingCenter, вот мой код в событии нажатия кнопки SignaturesPage, используйте MessagingCenter для отправки данных в MainPage.

     private async void Button_Clicked(object sender, EventArgs e)
    {
       //get stream of Signatures  from the pad
        Stream image = await SignaturePad.GetImageStreamAsync(SignatureImageFormat.Png);
        MessagingCenter.Send<Stream>(image, "Image");
        await Navigation.PopAsync();
    }

В MainPage I макет имеет Image для ожидания потока от SignaturesPage.

     <StackLayout>
    <!-- Place new controls here -->
    <Frame BorderColor="Orange"
           CornerRadius="10"
           HasShadow="True">
        <Button AutomationId="Mybutton" Text="Save" x:Name="Mybutton" HorizontalOptions="CenterAndExpand" Clicked="Mybutton_Clicked"/>
    </Frame>
    <Frame BorderColor="Orange"
           CornerRadius="10"
           HasShadow="True">
        <Image x:Name="MyImage" HeightRequest="500" WidthRequest="400"/>
    </Frame>


</StackLayout>

Вот мой фоновый код на главной странице.

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

        MessagingCenter.Subscribe<Stream>(this, "Image", (arg) =>
        {
            MyImage.Source = ImageSource.FromStream(() => arg);

        });

    }

    protected override void OnAppearing()
    {
        base.OnAppearing();
    }
    private  void Mybutton_Clicked(object sender, EventArgs e)
    {

        Navigation.PushAsync(new SignaturesPage());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...