在我的silverlight应用程序中,我有一个图表控件,它具有Dependency属性,例如MinX。
每次更改 MinX 的值时,都会重新绘制图表,因此会重新绘制轴和标签。我有一个自定义转换器 XAxisLabelTextConverter 用于标签文本。默认转换器是共享的。如果我使用 x:shared =“false”使转换器非共享,则会为每个标签创建一个新的转换器实例。
<Controls:GOTControlFx x:Name="GOTControlFx"
DataItemCollection="{Binding ChartItemCollection}"
MaxX="{Binding XAxisMaxDateTimeOA}"
MinX="{Binding XAxisMinDateTimeOA}">
<Controls:GOTControlFx.View>
<c1:ChartView>
<c1:ChartView.AxisX>
<c1:Axis IsTime="True" AnnoFormat="HH:mm">
<c1:Axis.AnnoTemplate>
<DataTemplate>
<TextBlock
Text="{Binding ConverterParameter={RelativeSource Self},
Converter={StaticResource XAxisLabelTextConverter}}" />
</DataTemplate>
</c1:Axis.AnnoTemplate>
</c1:Axis>
</c1:ChartView.AxisX>
</c1:ChartView>
</Controls:GOTControlFx.View>
</Controls:GOTControlFx>
我的要求是每次更改MinX值时都应创建一个新的转换器,并且该转换器应该用于转换所有标签的值。
所以,问题是每次更改MinX Dependency属性值时如何创建XAxisLabelTextConverter的新实例?