1

私の XAML コードでは、コントロールの Height プロパティを親コントロールの ActualHeight にバインドしました。使用する元の値と IValueConverter からオフセットを計算する必要があるためです。

Height="{Binding ElementName=MainCanvas, Path=ActualHeight, Converter={StaticResource adjustVerteilung} , ConverterParameter= 12}"

これはこれまでのところうまくいきます。

何らかのイベントの後、ValueConverter 内の式が変更され、別の出力が生成されます。しかし、ウィンドウのサイズを変更した後にのみ、コントロールが更新されて整列されます。(C# コードから) コントロールにそれ自体を更新し、ValueConverter から新しい値を取得するように指示する方法はありますか?

4

2 に答える 2

1

バインディングに UpdateSourceTrigger=PropertyChanged を追加すると、ウィンドウのサイズが変更されてバインディングが MainCanvas によって更新された後ではなく、実際の高さが変更されるとすぐに値に再バインドされます。

于 2009-07-17T14:55:32.447 に答える
0

ActualHeight が変化しなくても、値を変更したいと思います。私の知る限り、ValueConverter 機能はそのようなことを行うようには設計されていません。

何か違うことを試してみるべきです。「何らかのイベント」が発生したときに更新したいのが実際に観測された高さである場合は、「何らかのプロパティ」が何らかの形でイベントにバインドされているカスタムパネルを構築してみてください。次に、「何らかのイベント」が発生すると、パネル内にあるコントロールの高さを変更できます。

于 2009-09-25T15:18:36.953 に答える