GridViewItemsプロパティバインディングを使用して可視性を変更するにはどうすればよいですか?
ObservableCollectionとして使用しているものをフィルタリングするために別のものを作成することはできませんItemsSource。GridView.ItemContainerStyleスタイルを変更するために使用しようとしましGridViewItemたが、バインドでは機能しないようです (値を Collapsed に設定すると機能します)。
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="Visibility" Value="{Binding IsVisible, Converter={StaticResource booleanToVisibilityConverter}}" />
</Style>
</GridView.ItemContainerStyle>
も使ってみましたDataTemplateSelector。バインディングを使用してアイテムを非表示にできますが、まだそこにあり、折りたたまれていないGridViewため、隙間があります。ItemContainer
GridViewアイテムを非表示にするだけでなく、折りたたむ必要があります。
編集: filteredを取り除きたいのはなぜObservableCollectionsですか?
GridViews2と 1ListViewを同じものでミラーリングしようとしていますがItemsSource、SelectedItemどちらも ViewModel プロパティItemsとCurrent. フィルターがなければ、 SelectionChanged イベントがなくても期待どおりに機能しますが、Two-Way Binding のみで機能します。
ただし、それらGridView/Listviewには、選択可能なアイテムやそのDataTemplates. そのため、問題を引き起こしたフィルター処理されたコレクションを使用しています。
例えば:
GridView1項目 1、2、および 3 を含むGridView2項目 1 と 3 のみを持つ- の項目 1 を選択します
GridView1 - の項目 2 を選択します
GridView1
アイテム1を選択すると、それも選択されGridView2ます。とりあえずいい。アイテム 2 を選択すると、アイテム 1 が選択されたままになりGridView2ます。GridView2今は選択なしである必要がありますが、強制すると、両方が双方向にバインドされているGridView2ため、常に項目 2 の選択が解除されます。SelectedItem
英語は私の母国語ではないので、これが理解できることを願っています。