如何为标有[RelayCommand]的方法定义接口

问题描述 投票:0回答:1

我的团队需要 ViewModel 的接口。我喜欢 MVVM 社区工具包,但我想同时使用接口和

[RelayCommand]
属性类方法。

如何在以下场景中使用我的

DownloadConfigurationCommand
后代类为
ObservableObject
定义接口?

以下生成一个公开调用的“命令”:

DownloadConfigurationCommand

代码定义为:

 [RelayCommand]
private async Task DownloadConfiguration(AppConfiguration appConfiguration)
{
    // TODO: Call DownloadConfiguration Configuration
    await Task.Delay(10);
}

仅供参考:代码可以工作,但未满足团队定义接口的要求。

提前致谢!

c# mvvm community-toolkit-mvvm
1个回答
0
投票

如果您确实想在接口中定义命令的确切规范,在异步且具有类型参数的情况下,您可以将属性指定为

IAsyncRelayCommand<T>
但这会将您与特定的实现联系起来,从而否定首先使用接口的任何可能原因。如果您想让事情变得更通用,只需将其声明为
ICommand
并失去指定命令的确切类型的能力。

一般来说,为只实现一次的类型定义接口是没有意义的。这听起来像是一个过于迂腐的经理的政策,他并不真正理解他们为什么这样做。

© www.soinside.com 2019 - 2024. All rights reserved.