WPF文本框表达式绑定

时间:2016-05-17 10:08:40

标签: wpf data-binding

我有两个绑定到滑块的文本框。我希望第二个文本框是幻灯片值的1.2倍。

<Slider Maximum="500" Minimum="25" TickFrequency="5" IsSnapToTickEnabled="True" Name="slCellHeight" />
<TextBox Text="{Binding ElementName=slCellHeight, Path=Value, UpdateSourceTrigger=PropertyChanged}" Width="40" Name="txtCellHeight" />
<TextBox Text="{Binding ElementName=slCellHeight, Path=Value, UpdateSourceTrigger=PropertyChanged}" Width="40" Name="txtCellWidth" />

也就是说,当滑块显示100时,第一个文本框(txtCellHeight)应显示100.这样工作正常。我想第二个是120.

我试过calBinding但没有成功。请提出一些好方法。

1 个答案:

答案 0 :(得分:1)

使用转换器。

<强> XAML:

<Window.Resources>
    <local:MultiplyConverter x:Key="MultiplyConverter" />
</Window.Resources>

...

<TextBox Text="{Binding ElementName=slCellHeight, Path=Value,
UpdateSourceTrigger=PropertyChanged, Converter={StaticResource
MultiplyConverter}, ConverterParameter=1.2 }" Width="40" Name="txtCellWidth" />

Class MultiplyConverter:

class MultiplyConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        double result;
        double.TryParse(parameter.ToString(), out result);
        double mult = (double)value * result;
        return mult;
    }

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

我已经完成了它,所以也许需要一些修复来编译。