m-y*_*m-y 5 c# wpf markup-extensions ivalueconverter service-provider
我正在阅读我的一些旧代码并遇到了混合IValueConverter/ MarkupExtension类.这让我想知道如果IServiceProvider在ProvideValue方法实际上是有用的,以及它如何将有用吗?
我看到IServiceProvider只有一个方法:GetService必须转换为适当的服务类型.我还查看了MarkupExtension.ProvideValue MSDN页面,它列出了不同类型的服务.我想,我只是想知道这些服务是否有用,或者我应该保留我的方法呢?
现行方法:
public Object ProvideValue(IServiceProvider serviceProvider)
{
return new MyConverter();
}
Run Code Online (Sandbox Code Playgroud)
基本上,我应该做以下事情:
public Object ProvideValue(IServiceProvider serviceProvider)
{
var provider = serviceProvider as SomeType;
if (provider == null) return new MyConverter();
//Do something with the provider here?
}
Run Code Online (Sandbox Code Playgroud)
Fre*_*lad 11
例如,提供程序可用于获取有关其应用于的目标对象和属性的信息.如果您不需要知道这些值,则不需要使用它
例
public override object ProvideValue(IServiceProvider provider)
{
IProvideValueTarget service = (IProvideValueTarget)provider.GetService(typeof(IProvideValueTarget));
DependencyObject targetObject = service.TargetObject as DependencyObject;
DependencyProperty targetProperty = service.TargetProperty as DependencyProperty;
// ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |