我尝试在外部库中执行一个方法:
这是外部库的接口:
public interface IExternal
{
string Name { get; }
Task DoAsync();
}
这是外部库的类:
public class ExternalClass : IExternal
{
public string Name
{
get
{
return "Test external";
}
}
public async Task DoAsync()
{
Console.WriteLine("Do async");
await Task.Delay(3000);
Console.WriteLine("Done async");
}
}
这是我的ViewModel使用的本地类:
public class External
{
public string Name { get; set; }
public string Description { get; set; }
public RelayCommand Run { get; set; }
}
在我的应用程序中,我加载外部库作为参考。 尝试将DoAsync绑定为RelayCommand:
foreach (var item in externals)
{
var t = new External();
t.Name = item.Name;
t.Description = "test";
t.Run = new RelayCommand(async () => await item.DoAsync());
}
按钮的XAML绑定如下:Command =“{Binding Run}”
没有任何反应,也没有执行任何命令。