我一直在开发一个清单应用程序,使用 ListBox
显示数据。根据用户按下的按钮,我使用数组填充 ListBox
。(我不知道这是否是最佳实践,但现在它能够正常工作。)一旦用户完成了步骤,他可以使用以下命令删除项目:
private void SendSelected()
{
while (lstToDo.SelectedItems.Count > 0)
{
lstToDo.Items.Remove(lstToDo.SelectedItem);
}
}
问题在于我今天学习了如何使用以下xaml在我的
ItemTemplate
中添加CheckBox
:<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox Padding="10">
<CheckBox.LayoutTransform>
<ScaleTransform ScaleX="1" ScaleY="1" />
</CheckBox.LayoutTransform>
</CheckBox>
<TextBlock Text="{Binding}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
现在删除按钮仍然起作用... 但是我希望调整它,使其删除已选中的项目而不是选择的项目。 在winforms中,我曾经这样做:
while (lstToDo.CheckedItems.Count > 0)
{
lstToDo.Items.Remove(lstToDo.CheckedItems[0]);
}
但在WPF中,显然这种方法不起作用,我只是不确定原因。