【发布时间】:2011-06-30 18:34:32
【问题描述】:
我有一个应用程序,它使用两个滑块来生成代码中其他地方使用的产品。我想要将产品值绑定到文本块或工具提示,例如,看起来像“10 x 15 = 150”。
第一部分很简单,如下所示:
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} x {1}">
<Binding ElementName="amount_slider" Path="Value" />
<Binding ElementName="frequency_slider" Path="Value"/>
</MultiBinding>
</TextBlock.Text>
但是还有什么简单的方法可以将产品也放入其中?
使用 Pavlo Glazkov 的解决方案,我将其修改为如下所示:
public class MultiplyFormulaStringConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
var doubleValues = values.Cast<double>().ToArray();
double x = doubleValues[0];
double y = doubleValues[1];
var leftPart = x.ToString() + " x " + y.ToString();
var rightPart = (x * y).ToString();
var result = string.Format("{0} = {1}", leftPart, rightPart);
return result;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
还有最重要的
<Window.Resources>
<local:MultiplyFormulaStringConverter x:Key="MultiplyFormulaStringConverter"/>
</Window.Resources>
谢谢!
【问题讨论】: