首页 新闻 会员 周边

WPF ConverterParameter 的值如何设置为绑定数据源的某个字段?

0
悬赏园豆:10 [待解决问题]

WPF ConverterParameter 的值如何设置为绑定数据源的某个字段?
例如 ConverterParameter={Binding age}
但是会错误:
Error 7 A 'Binding' cannot be set on the 'ConverterParameter' property of type 'Binding'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject.

wgscd的主页 wgscd | 菜鸟二级 | 园豆:202
提问于:2020-01-09 16:35
< >
分享
所有回答(2)
1
  • 因为 ConverterParameter 不是依赖属性,不能再这个字段上使用binding.
  • 如果是想获取到绑定的值进行操作,可以新建一个IValueConverter或IMutiValueConverter的实现类

如下,我想显示只有0位小数的数字格式
我先创建一个 converter

    public class DoubleConvertToZero:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
           // 这里的 value = binding 的 MasterViewModel.MagneticLevel
            var tmp =System.Convert.ToDouble(value) ;
            return tmp.ToString("0");
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

声明converter

<ResourceDictionary>
    <c:DoubleConvertToOne x:Key="DoubleConvertToOne" />
</ResourceDictionary>

bind处使用

<TextBox Grid.Column="7" Text="{Binding MasterViewModel.MagneticLevel, Converter={StaticResource DoubleConvertToZero}}" />
Cheney.Zhong.ZCY | 园豆:254 (菜鸟二级) | 2020-01-09 18:24
0

converterparameter不是依赖属性,所以不能用binding。
参考:
https://cloud.tencent.com/developer/ask/48980
https://www.cnblogs.com/kissfu/p/5580432.html

不过,其实我的第一反应是既然没有DependencyAge ,那就建立一个依赖属性Age,然后才百度到的上面的方法

猝不及防 | 园豆:2781 (老鸟四级) | 2020-01-09 18:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册