我有一个网格,里面有 2 个列表视图。列表视图是相同的(只有 itemsource 与 c 的其他项目不同)datatemplate = Stackpanel 具有 1 个标签和另一个网格。现在我希望网格(在数据模板内的堆栈面板内)只有在选中项目(标签)时才可见。我用这段代码试了一下(我把它放在 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>
这行得通!但是,如果我在第二个列表视图中选择一个项目(并且只有第二个),那么第一个也显示该网格(在同一“项目级别”上)。(例如,在第二个列表视图中,我选择第三个项目(标签),然后网格显示在第二个列表视图的第三个项目上,但第三个项目网格显示在第一个列表视图上!!!)
我认为这与相对来源有关,但我找不到答案。希望你们能帮帮我。