C#/WPF/Avalonia-在按钮上单击“更改文本”

C#/WPF/Avalonia-在按钮上单击“更改文本”,c#,wpf,avaloniaui,C#,Wpf,Avaloniaui,我使用的是Avalonia 0.9.2 我对它非常陌生,按下按钮时无法更改文本 这是我的主窗口。xaml: <Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:ReadyForWar_Launcher.ViewModels;assembly=ReadyForWar

我使用的是Avalonia 0.9.2

我对它非常陌生,按下按钮时无法更改文本

这是我的
主窗口。xaml

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:vm="clr-namespace:ReadyForWar_Launcher.ViewModels;assembly=ReadyForWar_Launcher"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="ReadyForWar_Launcher.Views.MainWindow"
        Icon="/Assets/avalonia-logo.ico"
        Title="ReadyForWar_Launcher">

    <Design.DataContext>
        <vm:MainWindowViewModel/>
    </Design.DataContext>

  <StackPanel>
    <Button Content="Update the Text" Command="{Binding UpdateText}" CommandParameter="Hello World!"></Button>
    <TextBlock Text="{Binding Message}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
  </StackPanel>


</Window>
当我点击按钮
更新文本时
什么都没有发生?为什么呢?我想将
消息
的文本更新为
Hello world但什么也没发生

为什么会这样,我的错误在哪里?

看看这个:

这意味着要在UI中反映更改,项目需要实现
INotifyPropertyChanged
接口。请仔细阅读。

看看这个:


这意味着要在UI中反映更改,项目需要实现
INotifyPropertyChanged
接口。请仔细阅读。

当您单击按钮时,
UpdateText
方法是否会触发?我不知道如何测试。只需将断点放在方法的入口,看起来它正在进入内部,但不会更改文本…我没有使用Avalonia,但我猜文本必须是一个属性,可能是通过一些更改通知,当您单击按钮时是否会触发
UpdateText
方法?我不知道如何测试。只需将断点放在方法的入口看起来它正在进入内部,但不会更改文本…我没有使用Avalonia,但我猜文本必须是一个属性,也许有一些改变通知你好,你能用它应该如何工作的例子做一个完整的回答吗?你好,你能用它应该如何工作的例子做一个完整的回答吗?
public class MainWindowViewModel : ViewModelBase
{
    public string Message = "Welcome to Avalonia!";
    public void UpdateText(object text)
    {
        Message = (string)text;
    }
}
using ReactiveUI;

public class MyViewModel : ReactiveObject
{
    private string caption;

    public string Caption
    {
        get => caption;
        set => this.RaiseAndSetIfChanged(ref caption, value);
    }
}