Wpf 如何将来自自定义数据上下文的绑定与自定义标记相结合

Wpf 如何将来自自定义数据上下文的绑定与自定义标记相结合,wpf,binding,datacontext,markup,Wpf,Binding,Datacontext,Markup,我想结合来自包含ViewModel类和ResourceProvider类的自定义数据上下文的绑定。自定义数据上下文设置为窗口数据上下文 我是这样用的: <Button x:Name="btnShow" Content="Show" Command="{Binding View.HandleShow}"/> 哪个视图是dataContext中的属性。我希望通过自定义数据上下文使用最小标记进行本地化,并在我创建自己的数据上下文的代码中设置来自其他源的ResourceProvider

我想结合来自包含ViewModel类和ResourceProvider类的自定义数据上下文的绑定。自定义数据上下文设置为窗口数据上下文

我是这样用的:

<Button x:Name="btnShow" Content="Show" Command="{Binding View.HandleShow}"/>

哪个视图是dataContext中的属性。我希望通过自定义数据上下文使用最小标记进行本地化,并在我创建自己的数据上下文的代码中设置来自其他源的ResourceProvider

是否有可能在类似于该行代码的情况下执行此操作:

 <TextBlock Text="{Binding Res.Key=test}" />

我的资源提供程序从标记扩展继承,只有一个属性:Key


感谢您的建议

您可以使用以下代码创建自定义标记扩展:

public class LocalizedBinding : MarkupExtension
{
    public String Key { get; set; }

    public override object ProvideValue(IServiceProvider serviceProvider)
    {
        IProvideValueTarget target = (IProvideValueTarget)serviceProvider.GetService(typeof(IProvideValueTarget));

        //use target.TargetObject and target.TargetProperty to provide value based on Key
    }
}
然后像这样使用它:

<TextBlock Text="{local:LocalizedBinding Key=SomeKey}" />

我尝试了那个解决方案,但我更喜欢避免前缀local,因为localizedBinding来自不同的源,并使用IoC模式,因为我创建了CustomDataContext