XAML 是否可以添加/减去绑定到元素属性的值?

ruarlubt  于 2022-12-16  发布在  其他
关注(0)|答案(3)|浏览(160)

XAML允许修改绑定值吗?
就像Width="{Binding Elementname="lstMine", Path=Width}" -100?这样我就可以得到一个相对值。

efzxgjgh

efzxgjgh1#

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

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

fnvucqvd2#

使用转换器实现以下目的

dwthyt8l

dwthyt8l3#

你可以使用一个转换器,它简单易用,不需要任何库,并且如果你想要例如加值或相乘,很容易定制。
我从this post得到这个

转换器类:

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}}"

相关问题