转换器参数多绑定静态资源

时间:2015-03-06 06:09:20

标签: xaml

这是我的XAML代码:

<TextBox  HorizontalAlignment="Left" Height="24" Margin="168,352,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="280">
                <TextBox.Resources>
                    <sys:Double x:Key="fixedValue">2</sys:Double>
                </TextBox.Resources>
                <TextBox.Text>
                    <MultiBinding Converter="{StaticResource DoubleConverter}">
                        <Binding Path="RM.SpecificGravity"/>
                        <Binding Source="{StaticResource fixedValue}"/>
                    </MultiBinding>
                </TextBox.Text>
            </TextBox> 

这给了我这个错误:

  

双向绑定需要Path或XPath。

造成这种情况的原因是什么?如何解决?

1 个答案:

答案 0 :(得分:4)

如错误消息所示,您需要设置绑定路径。要直接绑定到Source对象,可以设置Path="."

<Binding Path="." Source="{StaticResource fixedValue}"/>

也就是说,您的MultiBinding可能会被普通的Binding取代,其中fixedValue作为ConverterParameter传递

<TextBox Text="{Binding Path=RM.SpecificGravity,
                Converter={StaticResource DoubleConverter},
                ConverterParameter=2}" />

使用像这样的值转换器:

public class DoubleConverter : IValueConverter
{
    public object Convert(
        object value, Type targetType, object parameter, CultureInfo culture)
    {
        var p = double.Parse(parameter.ToString());
        ...
    }

    ...
}