0

XAMLページでこのコードを使用しています:

<TextBox ItemsSource="{Binding Posters, Converter={StaticResource collectionToFirstElementConverter}, Mode=TwoWay}" />

ポスターはObsevableCollectionであり、コレクションを取得してその最初の要素を取得するコンバーターを使用しています。

テキストボックスがオブジェクトを受け取る非同期プロシージャを使用しているので、これには要素がなく(Count = 0)、コンバーターを呼び出します。

プロパティが新しい要素を追加するたびにテキストボックスを更新しようとしていますが、コンバーターを呼び出していません。

SilverlightまたはWPFには、SourceTriggerまたはUpdatePropertyChangedが存在することを覚えていますが、WinRTではこのモードが表示されません。

4

1 に答える 1

2

Postersこれを実現する最も簡単な方法は、それに応じてプロパティを含むビュー モデルを変更することです。私はそれについて2つの方法を見ることができます(どちらもあなたのビューモデルが実装していると仮定していますINotifyPropertyChanged):

  • イベント ハンドラーをその中に追加し、Posters.CollectionChangedその中に raise INotifyPropertyChanged.PropertyChangedforを追加しPostersます。
  • FirstPosterの最初の要素の値を返す別のプロパティを追加しPostersます。ビュー モデルで、イベント ハンドラーを追加し、Posters.CollectionChangedその中に raise INotifyPropertyChanged.PropertyChangedforを追加しFirstPosterます。この方法では、コンバーターも必要ありません。

個人的には2番目のアプローチの方が好きです。

于 2012-06-20T04:53:24.453 に答える