外部库中的MVVM Light执行方法

时间:2016-09-22 06:48:09

标签: c# wpf mvvm-light

我尝试在外部库中执行一个方法:

这是外部库的接口:

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}”

没有任何反应,也没有执行任何命令。

0 个答案:

没有答案