我有一个如下所示的项目控件的模板。我需要为模板中的每个项目分别使用colorProvider实例。项目控件中的每个项目都需要颜色提供者的单独实例,具体取决于它绑定的项目。 如何创建静态资源的多个副本,以便静态资源仅适用于该项目。创建staticresource的多个副本
<ItemsControl x:Name="itemsControl" ItemsSource="{Binding DataList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid MinHeight="250">
<ContentPresenter Content="{Binding }" ContentTemplateSelector="{StaticResource chartSelector}">
<ContentPresenter.Resources>
<v:ColorProvider x:Key="colorProvider"/>
</ContentPresenter.Resources>
</ContentPresenter>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
colorProvider资源永远不会在你的代码中使用。 请描述你打算如何使用这个资源。 –
它是从将在contentpresenter中加载的模板引用的。然而,作为一种解决方法,我设法使用控件标记对象来获取返回应该初始化colorprovider的数据的引用。 – TrustyCoder
听起来像[x:Shared =“False”](https://msdn.microsoft.com/en-us/library/aa970778%28v=vs.110%29.aspx)的情况。 – icebat