Prism Xamarin - привязка данных не обновляется - PullRequest
1 голос
/ 18 апреля 2020

Я экспериментирую с Призмой и ксамарином, но мне кажется, что я даже не обновляю свою собственность, и я не понимаю, почему. Я перехожу на эту страницу с, и заголовок должен быть обновлен, но вместо этого это пустая строка. Может кто-нибудь объяснить, почему он не обновляется? Спасибо!

Xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="http://prismlibrary.com"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="CardGame.Mobile.Views.GamePage">

    <StackLayout Padding="10, 20">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="1*" />
                <RowDefinition Height="2*" />
                <RowDefinition Height="2*" />
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
            </Grid.ColumnDefinitions>

            <Label Text="{Binding Title, Mode=TwoWay}" 
                   FontSize="Large"
                   HorizontalOptions="FillAndExpand"
                   Grid.Column="0"
                   Grid.Row="0"/>

            <Image Source="AC.png"
                   Grid.Column="0"
                   Grid.Row="1"
                   Scale="0.2"
                   Aspect="AspectFit" />

            <Image Source="AC.png"
                   Grid.Column="0"
                   Grid.Row="2"
                   HorizontalOptions="Fill"
                   VerticalOptions="Fill"/>

        </Grid>
    </StackLayout>

</ContentPage>

Мой MVVM

public class GamePageViewModel : BindableBase, INavigationAware
{
    private SingleGameManager _gameManager;
    public string PlayerName { get; set; }

    private string _title;
    public string Title
    {
        get { return _title; }
        set 
        {
            SetProperty(ref _title, value);
            RaisePropertyChanged();
        }
    }

    public GamePageViewModel()
    {
    }

    public void OnNavigatedFrom(INavigationParameters parameters)
    {
    }

    public void OnNavigatedTo(INavigationParameters parameters)
    {
        PlayerName = parameters.GetValue<string>("PlayerName");

        _gameManager = new SingleGameManager(PlayerName);
        _gameManager.StartRound();
        Title = $"Welcome {PlayerName}! Round {_gameManager.Round}!";
    }
}

Как вы видите на моем свойстве, я вызываю RaisePropertyChanged, но он не выполняется, я думаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...