如何使用工厂方法实例化 XAML 中的对象
How to instantiate an object in XAML with a factory method
在构造函数中使用 async/await 的需要使我想到了实例化对象的静态工厂方法。没有 async/await 我的对象在 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 尚不可用,是否有解决方法?
在构造函数中使用 async/await 的需要使我想到了实例化对象的静态工厂方法。没有 async/await 我的对象在 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 尚不可用,是否有解决方法?