私は自分の古いコードを調べていて、ハイブリッドIValueConverter
/MarkupExtension
クラスに出くわしました。メソッドの が実際に役立つのか、どのように役立つのか疑問に思いIServiceProvider
ました。ProvideValue
IServiceProvider
メソッドが 1 つしかないことがわかります:GetService
は、適切なサービス タイプにキャストする必要があります。また、 MarkupExtension.ProvideValue MSDN ページも調べましたが、さまざまな種類のサービスが一覧表示されています。これらのサービスのいずれかが役立つかどうか、またはメソッドをそのままにしておく必要があるかどうか疑問に思っています。
現在の方法:
public Object ProvideValue(IServiceProvider serviceProvider)
{
return new MyConverter();
}
基本的に、次のことを行う必要があります。
public Object ProvideValue(IServiceProvider serviceProvider)
{
var provider = serviceProvider as SomeType;
if (provider == null) return new MyConverter();
//Do something with the provider here?
}