我可以添加/减去绑定到元素属性的值吗?

问题描述 投票:0回答:3

XAML 是否允许修改绑定值?
喜欢

Width="{Binding Elementname="lstMine", Path=Width}" -100
?这样我才能有一个相对的价值。

wpf xaml
3个回答
16
投票

您可以使用转换器来实现此目的,我的 WPF Converters 库包含一个

ExpressionConverter
,可以让您做到这一点:

Width="{Binding Width, ElementName=lstMine, Converter={con:ExpressionConverter {}{0}-100}}"

2
投票

使用 Converter 实现这些目的


2
投票

您可以使用转换器,它使用简单,不需要任何库,并且如果您想要添加值或乘法,则可以轻松自定义。

我从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}}"
© www.soinside.com 2019 - 2024. All rights reserved.