在构造函数中使用async/await的需求将导致我实例化对象的静态工厂方法。没有异步/等待我的目标是在XAML中实例化,像这样:如何使用工厂方法在XAML中实例化对象
<viewModel:MyClass x:key="myClass"/>
如果我使用一个静态工厂方法,调用它CreateAsync(),对象实例化代码如下所示:
MyClass myClass = await MyClass.CreateAsync();
全部是在代码隐藏方面很好,并按预期工作,但如果可能的话,我希望XAML中的上述代码等效。快速搜索建议沿着下面的一行使用新的属性FactoryMethod来指定工厂方法。
<viewModel:MyClass x:FactoryMethod="CreateAsync" x:key="myClass"/>
但是,问题在于x:FactoryMethod仅在XAML 2009(而不是XAML 2006)中受支持。此外,根据我的简短研究,XAML 2009尚未得到支持。
那么,在给定一个静态工厂方法的情况下,如何用XAML实例化一个对象?考虑到x:FactoryMethod目前尚不可用,是否有解决方法?
如果有更好的路线,我不会挂在异步构造函数上。我希望数据在绑定到数据对象时被初始化,并且初始化恰好(并且需要!)异步。从XAML内部完成所有工作将是理想的选择。我可以从ViewModel做到这一点,没问题,但认为全XAML解决方案,如果可能的话,在我看来,更优雅。我假设它应该可以在XAML中完成,但我可能是错的。 – user5525674