【发布时间】:2013-02-08 00:39:17
【问题描述】:
我正在编写一个复合松散耦合的 MVVM WPF 应用程序,父 VM 中的子 VM 是接口而不是类实例,例如
public IChildViewModel { get; set; }
现在如何使用 DataTemplate 呈现此属性?喜欢:
<DataTemplate DataType="{x:Type contracts:IChildViewModel}">
我理解由于接口的性质(多重继承等),WPF 不允许这种直接绑定。但是由于接口应该在松散耦合的应用程序中广泛使用,是否有任何解决方法可以将 DataTemplate 绑定到接口?谢谢。
【问题讨论】:
-
使用
ContentControl设置它的ContentTemplate基于DataTrigger将DataContext 和接口传递给IValueConverter怎么样?然后,您可以测试 Value 是否属于通过 Parameter 传入的类型,以及 True 是否使用适当的 DataTemplate
标签: wpf types interface bind datatemplate