我有一个包含列表视图的 ItemsControl 来制作类似布局的自定义网格 大致以下是执行此操作的代码外观,更改了名称并删除了不相关的样式。
每个列表视图都是由 ItemsSubList 的一个实例创建的,因此没有要创建的列表框或属性的固定数量。
有谁知道我如何能够以某种方式将每个列表框的 SelectedItem 属性绑定到一个列表中。
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding ItemsSubList}"
DisplayMemberPath="ItemVersion"
SelectionMode="Single"
Width="100"
VerticalAlignment="Top"
Background="#282828"
BorderBrush="#282828">
</ListView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我会在你的模型中解决它。 您的数据上下文似乎是一个具有ObservableCollection<MyItem>
类型的属性Items
的类,而您的类MyItem
则作为类型为ObservableCollection<MySubItem>
的属性ItemsSubList
。是吗?
列表视图的数据上下文是 MyItem 类型的实例。可以将属性SelectedSubItem
添加到类MyItem
,并使用双向绑定将其绑定到列表框。选定项。
然后在您的主类中,它包含您的模型以及属性Items
所在的位置,我会添加一个属性public List<MySubItem> SelectedSubItems => Items.Select(i => i.SelectedSubItem).ToList();
,一个从所有项目中动态选择所有选定子项的属性。