这是我的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。
造成这种情况的原因是什么?如何解决?
答案 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());
...
}
...
}