【发布时间】:2017-02-20 15:27:22
【问题描述】:
我有一个List 的Lists 并用嵌套的ListBoxes 显示它:
MainWindow.xaml.cs
using System.Collections.Generic;
namespace WPF_Sandbox
{
public partial class MainWindow
{
public IEnumerable<IEnumerable<string>> ListOfStringLists { get; set; } = new[] { new[] { "a", "b" }, new[] { "c", "d" } };
public MainWindow()
{
InitializeComponent();
DoSomethingButton.Click += (sender, e) =>
{
// do something with all selected items
};
}
}
}
MainWindow.xaml
<Window x:Class="WPF_Sandbox.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow"
x:Name="ThisControl">
<StackPanel>
<ListBox ItemsSource="{Binding ListOfStringLists, ElementName=ThisControl}">
<ListBox.ItemTemplate>
<ItemContainerTemplate>
<ListBox ItemsSource="{Binding}" SelectionMode="Multiple">
<ListBox.ItemTemplate>
<ItemContainerTemplate>
<TextBlock Text="{Binding}" />
</ItemContainerTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ItemContainerTemplate>
</ListBox.ItemTemplate>
</ListBox>
<Button Name="DoSomethingButton" Content="DoSomething" />
</StackPanel>
</Window>
如何获取所有ListBoxes 中的所有选定项?
我发现 few solutions 得到一个选定的项目,但无法弄清楚如何在我的场景中应用这些项目。
我知道如何通过包装 string 数组来做到这一点,但我不想这样做。
【问题讨论】:
-
“包装字符串数组”是否意味着编写视图模型?您应该编写视图模型。
-
@EdPlunkett 即使我将 MVVM 用于此应用程序(出于各种原因我不这样做),“分解”列表列表也会很烦人。我希望我的视图模型保存字符串列表和选定字符串列表。不过,这似乎有点棘手。
标签: c# wpf xaml listbox nested