0

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 進プロパティにバインドされるようにしたいと考えています。私は多くの可能性を試しましたが、このばかげた問題に数日間立ち往生しているので、どんな助けもかなりのものです.

4

1 に答える 1