10 進数入力用に 2 つのテキスト ボックスがあります。テキストボックス内の値の合計は、フォームのプロパティの 10 進値と等しくなければなりません。
次のように、MultiValueConverter で 2 つの MultiBinding を使用しようとしました。
xaml:
<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 のプロパティであり、completeConverter コンバーターは次のとおりです。
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
decimal result = (decimal)values[1] - (decimal)values[0];
return result.ToString();
}
テキストボックスの1つを最初に合計値と等しくなるように設定し、もう1つをゼロに設定する必要があるため、これは機能しません。理想的には、コンバーターが補完的な合計を作成し、テキスト ボックスの値が 2 つのフォームの 10 進プロパティにバインドされるようにしたいと考えています。私は多くの可能性を試しましたが、このばかげた問題に数日間立ち往生しているので、どんな助けもかなりのものです.