Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WPF中添加两个绑定_Wpf_Xaml_Binding_Ivalueconverter - Fatal编程技术网

在WPF中添加两个绑定

在WPF中添加两个绑定,wpf,xaml,binding,ivalueconverter,Wpf,Xaml,Binding,Ivalueconverter,我最近一直在玩wpf,我想使用两个绑定路径值sum作为第三个控件的绑定。我尝试使用值转换器,但没有成功。如果有人能指引我走上正确的道路,我将不胜感激 以下是我到目前为止的情况: 我有两个编码器,比如 <my3:NVAngle Canvas.Left="400" Canvas.Top="610" BindableValueExtended="120" BindableValueRetracted="0" AnimationDuration="2" x:Name="nvAArm3Rotat

我最近一直在玩wpf,我想使用两个绑定路径值sum作为第三个控件的绑定。我尝试使用值转换器,但没有成功。如果有人能指引我走上正确的道路,我将不胜感激

以下是我到目前为止的情况:

我有两个编码器,比如

  <my3:NVAngle Canvas.Left="400" Canvas.Top="610" BindableValueExtended="120" BindableValueRetracted="0" AnimationDuration="2" x:Name="nvAArm3Rotate" BindableValue="0" InvertExtendedTag="False" InvertRetractedTag="False"  />
  <my3:NVAngle Canvas.Left="400" Canvas.Top="610" BindableValueExtended="50" BindableValueRetracted="0" AnimationDuration="2" x:Name="nvAArm2Rotate" BindableValue="0" InvertExtendedTag="False" InvertRetractedTag="False"  />

我想旋转一个图像,角度是上面两个角度编码器的总和。比如:

<Image Canvas.Left="100" Canvas.Top="200" Source="/Images/ExtraInter.png" Stretch="Fill" Width="117" Height="15" RenderTransformOrigin="0.95, 0.5">
   <Image.RenderTransform>
                <RotateTransform>
                    <RotateTransform.Angle>
                        <MultiBinding Converter="{StaticResource BundleArm3Full}">
                            <Binding ElementName="nvABundleArm2Rotate" Path="BindableValue" />
                            <Binding ElementName="nvABundleArm3Rotate" Path="BindableValue" />
                        </MultiBinding>
                    </RotateTransform.Angle>
                </RotateTransform>
                    <!--120-->
                </Image.RenderTransform>
</Image>

我的转换器是:

 public class MultipleBindingAddConverter : IMultiValueConverter
{
    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        var doubleValues = values.Cast<double>().ToArray();

        var resultSum = doubleValues.Sum().ToString();

        return resultSum;
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}
公共类MultipleBindingAddConverter:IMultiValueConverter
{
公共对象转换(对象[]值,类型targetType,对象参数,CultureInfo区域性)
{
var doubleValues=values.Cast().ToArray();
var resultSum=doubleValues.Sum().ToString();
返回结果;
}
公共对象[]转换回(对象值,类型[]目标类型,对象参数,CultureInfo区域性)
{
抛出新的NotImplementedException();
}
}
我仍然看不到图像的旋转,尽管我可以保证BindableValue正在更改。非常感谢您的帮助


谢谢

您可以将多重绑定与执行求和的转换器一起使用

<MultiBinding Converter="{StaticResource sumConverter}" >
  <Binding Path="FirstValue"/>
  <Binding Path="SecondValue"/>
</MultiBinding>


发布相关代码和XAML。在不知道您正在处理的实际代码/XAML的情况下,您怎么能期望任何人帮助您呢?请参阅编辑。谢谢我的转换器出了问题,返回的是字符串而不是双精度。现在效果很好,谢谢!