ItemsSourceでバインディングモードを設定するだけで十分ですか?
-
30-09-2019 - |
質問
これは冗長です(Mode=OneTime
それぞれに TextBlock
) ?
<ListBox ItemsSource="{Binding Path=SearchResultsItems, Mode=OneTime}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Path=Price, Mode=OneTime}" />
<TextBlock Text="{Binding Path=Description, Mode=OneTime}" />
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
解決
私はそうは思わない。設定 ItemsSource
に 一度 アイテム自体ではなく、アイテムのコレクションに関するものです。 ItemsSource
= 一度 実際には、「初期化後にアイテムコレクションが変更された場合、リストボックスを更新しないでください」を意味します。
他のヒント
私はそうは思わない。
アイテムソースのバインディングがモードがかつてモードである場合、リストを変更してもプロパティの変更を取得しないでください(アイテムを追加または削除します)、リストアイテムのプロパティからプロパティの変更を取得します。
したがって、アイテムに価格や説明の変更を表示したくない場合は、テキストブロックでモード= ONETIMEを保持する必要があります。
所属していません StackOverflow