简化后,我有一个 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”?