C#/WPF/Avalonia-在按钮上单击“更改文本”
我使用的是Avalonia 0.9.2 我对它非常陌生,按下按钮时无法更改文本 这是我的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
主窗口。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);
}
}