应用程序资源中的 WPF 样式
WPF style in Application resources
我在应用程序资源中有一种样式,我想将其应用于许多不同的饼图。样式如下所示:
<Style x:Key="aaa" TargetType="{x:Type nm:CustomChartControl}">
<Setter Property="..." Value="..." />
<!-- etc -->
<nm:CustomChartControl.Series>
<nm:PieSeries /> <!-- PROBLEM -->
</nm:CustomChartControl.Series>
</Style>
为了简单起见,我排除了更多属性。这一切都很好。现在,我的一些馅饼需要有不同的 "model" 来为切片绘制背景(例如虚线),这就是问题所在。
当我在特定图表中为 nm:PieSeries 设置模型(在运行时)时,该模型也会应用于应用程序中显示的所有其他饼图。好像只有一个实例被所有应用该样式的馅饼使用。
有什么方法可以告诉它在每次将样式应用于新控件时创建一个 nm:PieSeries 的新实例?
您可以尝试将 PieSeries
创建为单独的非共享资源:
<nm:PieSeries x:Shared="False" x:Key="NonSharedPieSeries" />
然后在样式中使用该资源:
Value="{Binding Source={StaticResource NonSharedPieSeries}}"
(...并感谢 OP 更正了我在如何将其绑定到 Value
方面的错误)。
我在应用程序资源中有一种样式,我想将其应用于许多不同的饼图。样式如下所示:
<Style x:Key="aaa" TargetType="{x:Type nm:CustomChartControl}">
<Setter Property="..." Value="..." />
<!-- etc -->
<nm:CustomChartControl.Series>
<nm:PieSeries /> <!-- PROBLEM -->
</nm:CustomChartControl.Series>
</Style>
为了简单起见,我排除了更多属性。这一切都很好。现在,我的一些馅饼需要有不同的 "model" 来为切片绘制背景(例如虚线),这就是问题所在。
当我在特定图表中为 nm:PieSeries 设置模型(在运行时)时,该模型也会应用于应用程序中显示的所有其他饼图。好像只有一个实例被所有应用该样式的馅饼使用。
有什么方法可以告诉它在每次将样式应用于新控件时创建一个 nm:PieSeries 的新实例?
您可以尝试将 PieSeries
创建为单独的非共享资源:
<nm:PieSeries x:Shared="False" x:Key="NonSharedPieSeries" />
然后在样式中使用该资源:
Value="{Binding Source={StaticResource NonSharedPieSeries}}"
(...并感谢 OP 更正了我在如何将其绑定到 Value
方面的错误)。