WPF DataTemplate访问同一ResourceDictionary中的Resources

时间:2012-06-05 08:47:11

标签: wpf resources datatemplate

简化,我有一个包含DataTemplate和ViewModel-Class的ResourceDictionary。

<ResourceDictionary>
    <DataTemplate DataType="Whatever">
        <ListBox ItemsSource="{Binding Source={StaticResource MyViewModel}, Path=SomeGlobalData}" />
    </DataTemplate>

    <MyViewModelClass x:Key="MyViewModel" />
</ResourceDictionary>

当然Binding不起作用(它会触发异常)因为DataType没有资源'MyViewModel'。但是在VisualTree中,获取DataTemplated的“东西”是一个对象的子代,它将ResourceDictionary与其资源合并,因此可能有一种方法可以在运行时访问它。

所以我的问题是:在DataTemplate中访问'MyViewModel'有什么干净的方法吗?

1 个答案:

答案 0 :(得分:0)

您的问题是这些资源的实例化顺序以及您使用StaticResource vs DynamicResource的事实。

通过查找对已定义资源的引用,StaticResource为任何XAML属性属性提供值。尝试了解有关该主题的更多信息。

因此,如果您仍打算使用StaticResource,请将视图模型移到数据模板上方。

相关问题