更改WPF工具箱图表上的轴会引发异常
我有一个WPF工具包图表,我希望能够指定轴范围并更改显示的数据。这两种方法都可以独立工作,但当我将它们放在一起时,绑定代码会抛出一个异常,因为轴的最小值和最大值会短暂反转 下面是一些代码:更改WPF工具箱图表上的轴会引发异常,wpf,charts,wpftoolkit,Wpf,Charts,Wpftoolkit,我有一个WPF工具包图表,我希望能够指定轴范围并更改显示的数据。这两种方法都可以独立工作,但当我将它们放在一起时,绑定代码会抛出一个异常,因为轴的最小值和最大值会短暂反转 下面是一些代码: <Common:MultiSeriesChart SeriesSource="{Binding Data}" > <chartingToolkit:Chart.Axes> <chartingToolkit:LinearAxis Orientat
<Common:MultiSeriesChart SeriesSource="{Binding Data}" >
<chartingToolkit:Chart.Axes>
<chartingToolkit:LinearAxis
Orientation="X" Minimum="{Binding MinimumMass}" Maximum="{Binding MaximumMass}"/>
<chartingToolkit:LinearAxis
Orientation="Y" Minimum="0" Maximum="100"/>
</chartingToolkit:Chart.Axes>
</Common:MultiSeriesChart>
当我更改正在绘制的数据时,我需要更新X轴的MinimumMass
和maxiummass
。首先,我将MinimumMass
更新为新值,然后更新maxiummass
。除非新的MinimumMass
值大于旧的maximumass
,此时图形中的绑定代码抛出InvalidOperationException:最小值必须小于或等于最大值。
我可以按相反的顺序更新它们,但是我会得到同样的问题。有没有人知道正确的方法来处理这个问题,而不需要一个可怕的混乱来确保最大值暂时太大而不能被打败(即,将最大值设置为double.MaxValue
,然后将最小值设置为新的最小值,然后将最大值设置为新的最大值)?使用try and catch
try
{
min = a;
max = b;
}
catch(exception)
{
// reassign values here for min, max
min = a;
max = b;
}
祝你好运 最后,我只是在分配新值之前检查了顺序:
if (newMin > MaximumMass)
{
MaximumMass = newMax;
MinimumMass = newMin;
}
else
{
MinimumMass = newMin;
MaximumMass = newMax;
}
if (newMin > MaximumMass)
{
MaximumMass = newMax;
MinimumMass = newMin;
}
else
{
MinimumMass = newMin;
MaximumMass = newMax;
}