更改WPF工具箱图表上的轴会引发异常

更改WPF工具箱图表上的轴会引发异常,wpf,charts,wpftoolkit,Wpf,Charts,Wpftoolkit,我有一个WPF工具包图表,我希望能够指定轴范围并更改显示的数据。这两种方法都可以独立工作,但当我将它们放在一起时,绑定代码会抛出一个异常,因为轴的最小值和最大值会短暂反转 下面是一些代码: <Common:MultiSeriesChart SeriesSource="{Binding Data}" > <chartingToolkit:Chart.Axes> <chartingToolkit:LinearAxis Orientat

我有一个WPF工具包图表,我希望能够指定轴范围并更改显示的数据。这两种方法都可以独立工作,但当我将它们放在一起时,绑定代码会抛出一个异常,因为轴的最小值和最大值会短暂反转

下面是一些代码:

<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;
}