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



这是我的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。

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

正如错误消息所说,您需要设置绑定的路径。对于直接绑定到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());
        ...
    }
    ...
}

最新更新