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.
如下,我想显示只有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}}" />
converterparameter不是依赖属性,所以不能用binding。
参考:
https://cloud.tencent.com/developer/ask/48980
https://www.cnblogs.com/kissfu/p/5580432.html
不过,其实我的第一反应是既然没有DependencyAge ,那就建立一个依赖属性Age,然后才百度到的上面的方法