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
ですか?
GridViews
2と 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
英語は私の母国語ではないので、これが理解できることを願っています。