扩展已更新
TestNewCommand.axaml代码
<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" Height="134" Width="281" xmlns:local ="using:AvaloniaUI" x:Class="AvaloniaUI.TestNewCommand" x:DataType="local:TestNewCommand" Title="TestNewCommand"> <!--https://docs.avaloniaui.net/docs/reference/controls/menu--> <StackPanel> <Menu> <MenuItem Header="File"> <MenuItem Header="New" Command="{Binding NewCommand}"/> </MenuItem> </Menu> <Button Margin="5" Padding="5" ToolTip.Tip="New command tooltip" Command="{Binding NewCommand}">New</Button> <Button Margin="5" Padding="5" IsVisible="False" Command="{Binding OpenCommand}">Open (unwired)</Button> <Button Margin="5" Padding="5" Click="Button_Click">DoCommand</Button> </StackPanel> </Window>
TestNewCommand.axaml.cs代码
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using CommunityToolkit.Mvvm.Input;
using Shares.Avalonia;
using System;
namespace AvaloniaUI;
public partial class TestNewCommand : Window
{
public TestNewCommand()
{
InitializeComponent();
this.DataContext = this;
}
[RelayCommand]
private void New()
{
Console.WriteLine($"New command clicked");
}
[RelayCommand]
private void Open()
{
Console.WriteLine($"Open command clicked");
}
private void Button_Click(object? sender, RoutedEventArgs e)
{
//this.GetICommands()[1].Execute(null);
//this.GetICommand("Open")?.Execute(null);
this.GetICommands("Open")[0].Execute(null);
}
}
运行效果

浙公网安备 33010602011771号