我正在研究转换器,我很新。我不知道如何从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;
答案 0 :(得分:0)
您应该明白,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 };
因为我们在这里有2个未知变量的等式。 对不起,我不相信这个表达可以转换回来。