我有两个用于十进制输入的文本框。文本框中的值的总和应等于表单的属性十进制值。
我尝试将两个 MultiBindings 与 MultiValueConverter 一起使用,如下所示:
xml:
<TextBox x:Name="textBox1" ...>
<TextBox.Text>
<MultiBinding Converter="{StaticResource complementaryConverter}" Mode="OneWay">
<Binding ElementName="textBox2" Path="Text" />
<Binding Path="TotalValue" />
</MultiBinding>
</TextBox.Text>
</TextBox>
<TextBox x:Name="textBox2" ...>
<TextBox.Text>
<MultiBinding Converter="{StaticResource complementaryConverter}" Mode="OneWay">
<Binding ElementName="textBox1" Path="Text" />
<Binding Path="TotalValue" />
</MultiBinding>
</TextBox.Text>
</TextBox>
其中 TotalValue 是 Form 的属性,complementaryConverter 转换器是:
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
decimal result = (decimal)values[1] - (decimal)values[0];
return result.ToString();
}
这不起作用,因为我应该将其中一个文本框设置为最初等于总值,而将另一个文本框设置为零。理想情况下,我想让转换器产生互补的总和,并将文本框的值绑定到两个 Form 的小数属性。我尝试了很多可能性,但我已经被这个愚蠢的问题困住了几天,所以任何帮助都是显而易见的。