0

これはシナリオです:

ページにテレリック グリッドビューがあります。これは、クラス「GekoppeldeOntvangstRegel」のアイテムを持つ PagedCollectionView にバインドされています

このクラスは INotifyPropertyChanged を実装します

いくつかの列には、次のように、このクラスのオブジェクトにバインドされた TextBlock を持つ CellTemplate があります。

 <TextBlock Text="{Binding ConverterParameter='aantal', Converter={StaticResource GekoppeldeRegelDecimalFormatConverter}, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True, ValidatesOnNotifyDataErrors=True}" HorizontalAlignment="Right" ToolTipService.ToolTip="{Binding ConverterParameter='aantal', Converter={StaticResource GekoppeldeRegelToolTipDecimalFormatConverter}}" />

このコンバーターは、「Aantal」プロパティを特定の小数点以下の桁数の文字列に変換します。OnPropertyChanged("Aantal") を使用してコードから "Aantal" プロパティを更新すると、もちろんバインディングは更新されず (テキストブロックはプロパティではなくオブジェクト全体にバインドされるため)、古い値は引き続き表示されます。

プロパティが変更されたときにビューモデルまたはオブジェクトから列の内容を更新するにはどうすればよいですか?

「Aantal」プロパティに直接バインドすると、すべてが完全に機能します(コンバーターが適用されていないことを除いて、これは必要です)

4

1 に答える 1

0

回避策として、「GekoppeldeOntvangstRegel」クラスにいくつかの追加プロパティを作成しました。

これらのプロパティはコンバーターを呼び出し、適切な小数点以下の桁数で適切な値を返します。これらのプロパティでOnPropertyChangedを発生させると、バインディングが更新されます。

私はこのソリューションに本当に満足していませんが、今のところは機能します。

于 2012-07-24T09:59:45.073 に答える