2016-12-30 129 views
2

我有一个应用程序资源的样式,我想应用于许多不同的饼图。风格看起来像这样:WPF风格的应用程序资源

<Style x:Key="aaa" TargetType="{x:Type nm:CustomChartControl}"> 
    <Setter Property="..." Value="..." /> 
    <!-- etc --> 
    <nm:CustomChartControl.Series> 
    <nm:PieSeries /> <!-- PROBLEM --> 
    </nm:CustomChartControl.Series> 
</Style> 

有更多的属性,我排除了简单。这一切运作良好。现在,我的一些馅饼需要有一个不同的“模型”来为切片(如虚线)分配背景,这就是问题所在。

当我在特定图表中为nm:PieSeries设置模型时,该模型也适用于应用程序中显示的所有其他饼图。就好像只有一个实例被所有应用该风格的馅饼所使用。

有没有什么办法可以告诉它创建一个新的nm实例:PieSeries每次样式应用到新的控件?

+0

您可以尝试创建一个单独的资源'<纳米:PieSeries将X:共享= “假” ×:密钥= “NonSharedPieSeries”/>'和使用它作为'值= “{StaticResource的NonSharedPieSeries}”/>'。 –

+0

@Ed Plunkett这样做的窍门,尽管有必要使用Value = {Binding Source = {staticResource ...}。修改你的答案并发布,这样我就可以接受它 – Goran

回答

0

你可以尝试创建PieSeries作为一个独立的,非共享资源:

<nm:PieSeries x:Shared="False" x:Key="NonSharedPieSeries" /> 

,然后使用该资源的风格:

Value="{Binding Source={StaticResource NonSharedPieSeries}}" 

(...并感谢为OP纠正我的错误如何将其绑定到Value)。

相关问题