【发布时间】:2015-04-16 12:09:44
【问题描述】:
假设我有一个用于实现一些基本属性的特定控件的基本视图模型,例如
public abstract class ControlVmBase{
public abstract int IconSize {get;set;}
}
我还有一个 ResourceDictionary 我想与该控件一起使用,并且理想情况下将包含样式中的值绑定到 ControlVmBase 的实现。我认为通过 ObjectDataProvider 执行此操作是个好主意,因为它看起来像一个干净的解决方案,并在 XAML 中为我提供了 Intellisense 支持:
<ResourceDictionary>
<ObjectDataProvider x:Key="LinkedVm" ObjectType="{x:Type ControlVmBase}" />
<Style x:Key="MySpecialControlStyle" TargetType="MyCustomControl">
<Setter Property="ImageSize" Value="{Binding Source={StaticResource LinkedVm}, Path=IconSize}" />
</Style>
</ResourceDictionary>
但是这不起作用,因为 ODP 尝试实例化 ObjectType 这是没有意义的,因为它是一个抽象类,不会影响实现的类。是否可以使用这样的 ODP,或者是否有其他可能绑定到派生类?
【问题讨论】:
标签: c# wpf resourcedictionary objectdataprovider