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
NuGet 团队不提供对该客户端的支持。请联系它的 管理员 以获取支持。
#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
NuGet 团队不提供对该客户端的支持。请联系它的 管理员 以获取支持。
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
开始使用
安装包
dotnet add package package Avalonia.Labs.CommandManager
添加 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>
定义您的 RouterCommands
public static class ApplicationCommands { public readonly static RoutedCommand Open = new RoutedCommand(nameof(Open)); public readonly static RoutedCommand Save = new RoutedCommand(nameof(Save)); }
为您的
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>
将
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 已计算。 |
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 仓库
此包未由任何流行的 GitHub 仓库使用。