2016-12-30 126 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)。

相關問題