C # Xamarin как обновить статическую строку в ярлыке

#c# #xamarin #binding #static #cross-platform

#c# #xamarin #привязка #статический #кроссплатформенный

Вопрос:

я хочу обновить метку статической строкой. Это мой фактический код

 public partial class MainPage : INotifyPropertyChanged
{
    private static String _uploadstring;
    /// <summary>
    /// A static property which you'd like to bind to
    /// </summary>
    public static String Uploadstring
    {
        get
        {
            return _uploadstring;
        }

        set
        {
            _uploadstring = value;

        }
    }
  

и я хочу вызвать ее с

         Device.BeginInvokeOnMainThread(async () =>
        {
            Uploadstring = "TEEEEEEST";
        });
  

вот моя привязка к XAML

        <Label Text="{Binding Source={x:Staticlocal:MainPage.UploadString}}" x:Name="ttts"  TextColor="Red" TranslationY="50" HeightRequest="30" FontSize="26" HorizontalOptions="Center"/>
  

Если я установлю точку останова, я увижу, что Uploadstring обновляется в моем XAML. Но он не отображает ее, потому что он не обновляет текст. Как я могу решить свою проблему?

Комментарии:

1. Где вы устанавливаете событие OnPropertyChanged своим ключом

Ответ №1:

как насчет вставки одной строки в Setter?

 public static String Uploadstring
{
    get
    {
        return _uploadstring;
    }
    set
    {
        _uploadstring = value;
        Form.ttts.Text = _uploadstring;  // This line (Modified)
    }
}
  

если вам не нравится подобное использование, вам нужно привязать ее в режиме Twoway

Добавлено

Добавьте это для использования статического метода

     public static MainPage Form { get; set; } // This Line

    public MainPage()
    {
        InitializeComponent();
        Form = this; // And This Line
    }