2 つのリストビューを含むグリッドを取得しました。リストビューは同じです(アイテムソースのみが他のアイテムと異なります)、1 つのラベルと別のグリッドを持つ datatemplate = Stackpanel です。ここで、項目が選択されている場合 (ラベル) にのみグリッド (Datatemplate 内にあるスタックパネル内) が表示されるようにします。このコードで試してみました( Listview のデータテンプレートに入れました:
<StackPanel>
<Label content={binding blabla} />
<Grid Visibility="{Binding IsSelected,RelativeSource={RelativeSource AncestorType={x:Type ListViewItem}, Mode=FindAncestor}, Mode=OneWay, Converter={StaticResource BooleanToVisibilityConverter}}" >
...random labels etc...
</Gird>
</StackPanel>
これはうまくいきます!ただし、2番目のリストビュー(および2番目のみ)でアイテムを選択すると、最初のリストビューにもそのグリッド(同じ「アイテムレベル」)が表示されます)(たとえば、2番目のリストビューで3番目のアイテム(ラベル)、グリッドは 2 番目のリストビューの 3 番目のアイテムに表示されますが、3 番目のアイテム グリッドは最初のリストビューに表示されます!!!!)
これは相対的なソースに関係していると思いますが、答えが見つかりませんでした。皆さんが私を助けてくれることを願っています。