WPF - 使用嵌套在列表视图中的扩展器选择单个项目

WPF - single item selection with the expander nested in a listview

在我的 .xaml 文件中,我有一个包含 exapnder 的列表视图。问题是它不允许我一次 select 一个项目。

       <ListView ....>
             <GridView ....>
                   <Expander ...>
                        <stackPanel ...>
                             .......
                        </stackpanel>
                   </Expander>
            </GridView>
      </ListView>



         Header 1
              - Item 1
              - Item 2
              - Item 3
        Header 2
              - Item 1
              - Item 2
              - Item 3
              - Items 4

我的意思是我想 select "Item 1" 当我想的时候。同样,"Item 2" 如果我愿意的话。但是发生的是所有项目都立即 selected。我的意思是 "Item 1"、"Item 2" 和 "Item 3" 当谈到 Header 1 时。当然,还有 "Item 1 " 、 "Item 2" 、 "Item 3" 和 "Item 4" 当谈到 "Header 2" 时。没有单个项目 selection 是可能的。

你能告诉我哪里出了问题以及我应该设置哪个 属性 以获得所需的功能吗?

尝试 WPF:

<Window x:Class="WpfApplication1.MainWindow"
        x:Name="thisForm"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <ListView x:Name="f_List">
    <ListView.ItemTemplate>
      <DataTemplate>
        <Expander Header="{Binding Path=Key}">
          <ListView ItemsSource="{Binding Path=Value}">
          </ListView>
        </Expander>
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>
</Window>

和 C# 代码:

public MainWindow()
{
  InitializeComponent();
  Dictionary<string, List<string>> twoLists = new Dictionary<string, List<string>>();
  twoLists.Add("1 List", new List<string>(new string[] { "1.1", "1.2", "1.3", "1.4" }));
  twoLists.Add("2 List", new List<string>(new string[] { "2.1", "2.2", "2.3", "2.4" }));
  twoLists.Add("3 List", new List<string>(new string[] { "3.1", "3.2", "3.3", "3.4" }));
  twoLists.Add("4 List", new List<string>(new string[] { "4.1", "4.2", "4.3", "4.4" }));
  f_List.ItemsSource = twoLists;
}