Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataTemplateSelector内的等待操作_C#_Wpf - Fatal编程技术网

C# DataTemplateSelector内的等待操作

C# DataTemplateSelector内的等待操作,c#,wpf,C#,Wpf,我有一个WPF应用程序,它以前使用同步方法通过sintax获取必要的数据 var tagFromDescription = service.GetItem(x => x.Description == tag); 那个些服务的方法已经改变,并且并没有复古兼容性,所以我要做的就是让它正常工作 public class TestDataTemplateSelector : DataTemplateSelector { public override DataTemplate Sele

我有一个WPF应用程序,它以前使用同步方法通过sintax获取必要的数据

var tagFromDescription = service.GetItem(x => x.Description == tag);
那个些服务的方法已经改变,并且并没有复古兼容性,所以我要做的就是让它正常工作

 public class TestDataTemplateSelector : DataTemplateSelector
{
    public override DataTemplate SelectTemplate(object item, DependencyObject container)
    {
         var tagFromDescription = service.GetItem(x => x.Description == tag).Result;

        return base.SelectTemplate(item,container);
    }
}
在一个简单的WPF项目中,它可以工作,但我想知道这是否会导致死锁(在实际的应用程序生命周期中,在主UI线程上使用不同的组件),或者现在我如何修复它以确保安全

在代码的其他部分(例如在viewmodels中),我会这样做

这是可行的,在这种情况下,可以执行.Result或.Wait(),还是冒死锁的风险

var tagFromDescription = await service.GetItem(x => x.Description == tag);