C# C/UI-单击按钮并更改文本
我对阿瓦罗尼亚伊很陌生 当我点击一个按钮时,我真的很难改变文本。 这是我的密码:C# C/UI-单击按钮并更改文本,c#,avaloniaui,C#,Avaloniaui,我对阿瓦罗尼亚伊很陌生 当我点击一个按钮时,我真的很难改变文本。 这是我的密码: <Window xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="ht
<Window xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
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.MainWindow"
Title="ReadyForWar_Launcher">
<StackPanel>
<TextBlock Name="TestBlock">Show my text here!</TextBlock>
<Button Command="{Binding RunTheThing}" CommandParameter="Hello World">Change the Text!</Button>
</StackPanel>
</Window>
在RunTheThing中,我不知道如何选择Name=TestBlock的文本块并将文本更改为Hello World
你能帮我一下吗?有两种方法,推荐的和简单的 建议:使用MVVM模式。使用buttonextproperty和RunTheThing命令创建视图模型,使用该命令更改属性,将该模型指定给DataContext,并将按钮文本和命令绑定到视图模型属性。MVVM方法基本上与WPF中的方法相同,因此您可以使用适用于大多数Avalonia(顺便说一句)的文档和教程。例如,这里有一个来自google的非广告第四链接 简单的winforms方式:将x:Name=MyButton添加到按钮中,并在调用AvalonixamlLoader.Loadthis;后使用this.FindControlMyButton;。这将为您提供一个按钮引用,您可以从代码中操纵它。不使用命令,您可以直接从codebehind订阅click处理程序,将public void MyButton\u OnClick对象发送者、RoutedEventArgs args{}添加到MainWindow类,并使用click=MyButton\u OnClick添加replace命令和CommandParameter。这样,单击按钮将触发事件处理程序
请注意,第二种方法不能很好地适应应用程序的大小,并且在处理列表时存在代码复杂性。有两种方法,推荐的和简单的 建议:使用MVVM模式。使用buttonextproperty和RunTheThing命令创建视图模型,使用该命令更改属性,将该模型指定给DataContext,并将按钮文本和命令绑定到视图模型属性。MVVM方法基本上与WPF中的方法相同,因此您可以使用适用于大多数Avalonia(顺便说一句)的文档和教程。例如,这里有一个来自google的非广告第四链接 简单的winforms方式:将x:Name=MyButton添加到按钮中,并在调用AvalonixamlLoader.Loadthis;后使用this.FindControlMyButton;。这将为您提供一个按钮引用,您可以从代码中操纵它。不使用命令,您可以直接从codebehind订阅click处理程序,将public void MyButton\u OnClick对象发送者、RoutedEventArgs args{}添加到MainWindow类,并使用click=MyButton\u OnClick添加replace命令和CommandParameter。这样,单击按钮将触发事件处理程序
请注意,第二种方法不能很好地适应应用程序的大小,并且在处理列表时存在代码复杂性。您好,谢谢您的回答。然而,Avalonia似乎不允许使用Click=MyButton\u OnClick,我认为不再允许使用Click。你能对第一种方法做一个更详细的回答吗?按钮类中的点击事件。确保事件处理程序签名匹配并且处理程序是公共的!非常感谢。你能用Click=method试试一个例子吗?当我尝试解决该方法时,我收到了错误?测试并公开作废MyButton\u Clickobject sender,RoutedEventArgs=>Button sender.Content=新文本;在MainWindow.xaml.cs中为我工作您好,谢谢您的回答。然而,Avalonia似乎不允许使用Click=MyButton\u OnClick,我认为不再允许使用Click。你能对第一种方法做一个更详细的回答吗?按钮类中的点击事件。确保事件处理程序签名匹配并且处理程序是公共的!非常感谢。你能用Click=method试试一个例子吗?当我尝试解决该方法时,我收到了错误?测试并公开作废MyButton\u Clickobject sender,RoutedEventArgs=>Button sender.Content=新文本;在MainWindow.xaml.cs中,我可以使用它
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace ReadyForWar_Launcher
{
public class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
#if DEBUG
this.AttachDevTools();
#endif
}
private void InitializeComponent()
{
AvaloniaXamlLoader.Load(this);
}
public void RunTheThing()
{
}
}
}