MultiValueConverter object[] ConvertBack
本文关键字:ConvertBack object MultiValueConverter | 更新日期: 2023-09-27 18:02:49
我在转换器工作,我是很新的。我不知道,如何从xaml绑定中获取值。也许他会写我的代码。
在我的转换代码我有点困惑。对于Double B,我需要B的值inXAML
<TextBlock Text="Offset X [px]"
Style="{StaticResource StdTextBlockStyle}" />
<TextBox x:Uid="TextBox_1"
Style="{StaticResource StdTextBoxStyle}" >
<TextBox.Text>
<MultiBinding Converter="{StaticResource Conv}">
<Binding Path="B" />
<Binding Path="A" />
</MultiBinding>
</TextBox.Text>
</TextBox>
<TextBlock />
//c# Code//
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
double B = (double)values[0];
double A = (double)values[1];
double C = A-B;
return C;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
double C = (double)value;
double B = // I DON'T KNOW HOW TO GET VALUE FOR B. B is from XAML// ???
object[] ret = new object[1];
ret[0] = C + B;
return ret;
你应该明白,ConvertBack
的结果是
double B = (double)values[0];
double A = (double)values[1];
您在Convert
中定义的。MultiValueConverter
中转换的主要思想是定义你自己的逻辑,你希望如何看到这些值。这意味着您需要定义计算该数组的逻辑。根据您的Convert
函数:
double C = A-B;
我们在ConvertBack
:
double B=A-C;
double A=C+B;
不能通过计算A和B来定义
Array[] x = new []{ A, B };
因为这里有两个未知变量的方程。对不起,我不相信这个表达式是可以转换回来的。