XAML 是否允许修改绑定值?
喜欢
Width="{Binding Elementname="lstMine", Path=Width}" -100
?这样我才能有一个相对的价值。
您可以使用转换器来实现此目的,我的 WPF Converters 库包含一个
ExpressionConverter
,可以让您做到这一点:
Width="{Binding Width, ElementName=lstMine, Converter={con:ExpressionConverter {}{0}-100}}"
使用 Converter 实现这些目的
您可以使用转换器,它使用简单,不需要任何库,并且如果您想要添加值或乘法,则可以轻松自定义。
我从this帖子
得到了这个转换器类:
public class SubtractConverter : MarkupExtension, IValueConverter
{
public double Value { get; set; }
public object Convert(object baseValue, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
double val = System.Convert.ToDouble(baseValue);
// Change here if you want other operations
return val - Value;
}
public object ConvertBack(object baseValue, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
}
用法(记得将命名空间和转换器添加到窗口资源中):
Width="{Binding Width, ElementName=lstMine, Converter={converters:SubtractConverter Value=15}}"