xaml如何绑定列表框的多个选中项

How to bind the multiple selected items of list box in xaml

我有 Flags 枚举值,我已将其绑定到列表框的项目源中。我使用 SelectionMode 作为多个。我想将列表框的所有选定项目分配给标志枚举 属性。如何绑定选中的项目?

private void ListBox_SelectionChanged(object sender,SelectionChangedEventArgs e)
{
    ListBox list = sender as ListBox;

    this.Weekdays=list.SelectedItems.GetType().GetEnumValues().GetEnumerator()      
                                                    as Weekdays;

}

这里的 weekdays 是 Weekdays.I 类型的 Flags-Enum,希望将列表框的所有选定项目绑定到 Weekdays。

下面的代码就是您所需要的!如果选择多选模式,list.SelectedItems 包含所有选中的项目。您可以在列表的选择更改事件期间跟踪它们。您不能将值分配给枚举,而是创建一个列表并使用该列表使用与列表源相同的数据 class 来存储所选项目。

private List<DataClass> SelectedItemsList = new List<DataClass>();

if (list.SelectedItems.Count >= 0)
{
    for (int i = 0; i < list.SelectedItems.Count; i++)
    {
        SelectedItemsList.Add(list.SelectedIndices[i]);
    }
}