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;
}
在我的 .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;
}