xaml - 转换器参数多绑定(bind)静态资源

标签 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> 

这给我这个错误:

Two-way binding requires Path or XPath.

是什么原因造成的,我该如何解决?

最佳答案

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

    ...
}

关于xaml - 转换器参数多绑定(bind)静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28893235/

相关文章:

wpf - 如何设置覆盖 WPF 中全局样式的特定控件元素设置?

xaml - mvvm 中的 3 状态复选框绑定(bind),无法设置空状态

c# - Windows Phone 开发错误错误 "Csc.exe"退出,代码为 -1073741819

xaml - 如何使用 C# 和 XAML 在 Metro 中的 Canvas 上绘图

c# - 具有多列的列表框

wpf - 组合框下拉列表中的项目和选定项目的不同模板

wpf - 如何在 XAML 文件中引用相同的命名空间?

c# - ListBox VirtualizingStackPanel.VirtualizationMode ="Recycling"在 Windows Phone 7.5 中不起作用

c# - 每次新窗口作为命令参数

c# - 简单的 UWP 按钮动画