0

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

<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”?

4

1 回答 1

0

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

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

因此,如果您仍打算使用StaticResource.

于 2012-06-05T13:55:36.153 回答