Avalonia.Labs.CommandManager 11.1.0

前缀已预留
dotnet add package Avalonia.Labs.CommandManager --version 11.1.0                
NuGet\Install-Package Avalonia.Labs.CommandManager -Version 11.1.0                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Avalonia.Labs.CommandManager" Version="11.1.0" />                
对于支持 包引用 的项目,请将此 XML 节点复制到项目文件中以引用包。
paket add Avalonia.Labs.CommandManager --version 11.1.0                
#r "nuget: Avalonia.Labs.CommandManager, 11.1.0"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本源代码中以引用该包。
// Install Avalonia.Labs.CommandManager as a Cake Addin
#addin nuget:?package=Avalonia.Labs.CommandManager&version=11.1.0

// Install Avalonia.Labs.CommandManager as a Cake Tool
#tool nuget:?package=Avalonia.Labs.CommandManager&version=11.1.0                

Avalonia.Labs.CommandManager

RoutedCommand 的 WPF 风格实现。

当前支持的流程如下

sequenceDiagram
    participant RotendCommand
    participant View
    participant CommandManager
    participant ViewModel
    participant TopLevel
    TopLevel->>CommandManager: Got Focus
    CommandManager->>RotendCommand: Raise CanExecuteChanged
    RotendCommand->>View: Raise CommandManager.CanExecuteEvent
    View->>CommandManager: Raise CommandManager.CanExecuteEvent
    CommandManager->>ViewModel: ICommand.CanExecute
    CommandManager->>RotendCommand: Handle=True
    RotendCommand->>View: Raise CommandManager.ExecuteEvent
    View->>CommandManager: Raise CommandManager.ExecuteEvent
    CommandManager->>ViewModel: ICommand.Execute

开始使用

  1. 安装包

    dotnet add package package Avalonia.Labs.CommandManager
    
  2. 添加 XML 命名空间

    <UserControl 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"
                xmlns:lab="using:Avalonia.Labs.Catalog"
    +             xmlns:rc="using:Avalonia.Labs.Input"
                mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
                xmlns:viewModels="using:Avalonia.Labs.Catalog.ViewModels"
                x:Class="Avalonia.Labs.Catalog.Views.RouteCommandView"
                x:DataType="viewModels:RouteCommandViewModel"
                HorizontalContentAlignment="Stretch"
                VerticalContentAlignment="Stretch"
                >
                ...
    </UserControl>
    
  3. 定义您的 RouterCommands

    public static class ApplicationCommands
    {
        public readonly static RoutedCommand Open = new RoutedCommand(nameof(Open));
        public readonly static RoutedCommand Save = new RoutedCommand(nameof(Save));
    }
    
  4. 为您的 RotedCommand 分配引用

            <UniformGrid Columns="2"
                        Grid.Column="2">
                <Button Content="Open"
                        Command="{x:Static lab:ApplicationCommands.Open}"
                        CommandParameter="{Binding .}"/>
                <Button Content="Save"
                        Command="{x:Static lab:ApplicationCommands.Save}"
                        CommandParameter="{Binding .}"/>
            </UniformGrid>
    
  5. RouterCommand 绑定到您的 ViewModel

    <UserControl 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"
                xmlns:lab="using:Avalonia.Labs.Catalog"
                xmlns:rc="using:Avalonia.Labs.Input"
                mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
                xmlns:viewModels="using:Avalonia.Labs.Catalog.ViewModels"
                x:Class="Avalonia.Labs.Catalog.Views.RouteCommandView"
                x:DataType="viewModels:RouteCommandViewModel"
                HorizontalContentAlignment="Stretch"
                VerticalContentAlignment="Stretch"
                >
    <rc:CommandManager.CommandBindings>
        <rc:CommandBinding Command="{x:Static lab:ApplicationCommands.Open}" ExecutingCommand="{Binding Open}" />
        <rc:CommandBinding Command="{x:Static lab:ApplicationCommands.Save}" ExecutingCommand="{Binding Save}" />
    </rc:CommandManager.CommandBindings>
    ...
    </UserControl>
    

您可以在此处查看完整的示例。

待办事项

  • CommandTarget (需要修改 Avalonia)。
产品 兼容和额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 兼容。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。

NuGet 包

此包未由任何 NuGet 包使用。

GitHub 仓库

此包未由任何流行的 GitHub 仓库使用。

版本 下载 最后更新
11.1.0 63 8/5/2024
11.0.10.1 163 3/19/2024
11.0.10 114 3/18/2024