请问有人使用visifire图表么,我有个关于Datapoint以及MultiBinding的问题
如果我简单绑定
<Charts:DataSeries RenderAs="Line" Color="Red" MarkerEnabled="False" ShadowEnabled="False" Bevel="False">
<Charts:DataSeries.DataPoints>
<Charts:DataPoint XValue="{Binding ManualGateABegin}" YValue="{Binding ManualGateALevel}" Enabled="{Binding IsChecked,ElementName=autoCheckBox}"/>
<Charts:DataPoint XValue="{Binding ManualGateAEnd}" YValue="{Binding ManualGateALevel ,Converter={StaticResource aosoc},ConverterParameter=true}" Enabled="{Binding IsChecked,ElementName=autoCheckBox}"/>
</Charts:DataSeries.DataPoints>
</Charts:DataSeries>
得到的结果是正确的
但是我使用MulitBinding绑定时 ,就画不出曲线了
<Charts:DataSeries RenderAs="Line" Color="Red" MarkerEnabled="False" ShadowEnabled="False" Bevel="False">
<Charts:DataSeries.DataPoints>
<Charts:DataPoint >
<Charts:DataPoint.AxisXLabel>
<MultiBinding Converter="{StaticResource gab}">
<Binding Path="IsChecked" ElementName="autoCheckBox" />
<Binding Path="D"/>
<Binding Path="S2"/>
<Binding Path="ManualGateABegin"/>
</MultiBinding>
</Charts:DataPoint.AxisXLabel>
<Charts:DataPoint.YValue>
<MultiBinding Converter="{StaticResource gl}">
<Binding Path="IsChecked" ElementName="autoCheckBox" />
<Binding Path="AutoGateALevel"/>
<Binding Path="ManualGateALevel"/>
</MultiBinding>
</Charts:DataPoint.YValue>
</Charts:DataPoint>
<Charts:DataPoint>
<Charts:DataPoint.AxisXLabel>
<MultiBinding Converter="{StaticResource gae}">
<Binding Path="IsChecked" ElementName="autoCheckBox" />
<Binding Path="D"/>
<Binding Path="S2"/>
<Binding Path="ManualGateAEnd"/>
</MultiBinding>
</Charts:DataPoint.AxisXLabel>
<Charts:DataPoint.YValue>
<MultiBinding Converter="{StaticResource gl}">
<Binding Path="IsChecked" ElementName="autoCheckBox" />
<Binding Path="AutoGateALevel"/>
<Binding Path="ManualGateALevel"/>
</MultiBinding>
</Charts:DataPoint.YValue>
</Charts:DataPoint>
</Charts:DataSeries.DataPoints>
</Charts:DataSeries>
IMultiValueConverter 应该没有问题都有返回值
public class GateABeginForLossenConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
int result = 0;
bool auto = System.Convert.ToBoolean(values[0]);
if (auto)
result = System.Convert.ToInt32(values[2]);
else
result = System.Convert.ToInt32(values[3]);
return result;
}
我不明白这是为什么,难道visifire datapoint 只能valuebinding,不能multibinding 么