【发布时间】:2017-07-08 03:36:34
【问题描述】:
我有一个简单的字符串列表,我希望在列表框中显示这些字符串,具体取决于按下按钮时是否选中了复选框。我的按钮监听器中有这个逻辑:
private void fileSavePerms_Click(object sender, RoutedEventArgs e)
{
foreach (CheckBox checkbox in checkboxList)
{
if (checkbox.IsChecked == true && !permissionList.Contains(checkbox.Name))
{
permissionList.Add(checkbox.Name);
}
else if (checkbox.IsChecked == false && permissionList.Contains(checkbox.Name))
{
permissionList.Remove(checkbox.Name);
}
}
permListBox.ItemsSource = permissionList;
}
据我所知,这就是您如何在按钮单击时进行非常简单的数据绑定。然而,列表框第一次按预期更新,但随后将更新为我试图填充框的列表的不正确内容。我在输出中看不到明显的模式。
此外,一段时间后(单击几下按钮),我会捕获一个异常,说“an ItemsControl is inconsistent with its items source”。
我是否错误地设置了绑定或在错误的时间分配了ItemsControl?
更新:
列表框的 XAML:
<ListBox x:Name="permListBox" ItemsSource="{Binding permissionList}" HorizontalAlignment="Left" Height="36" Margin="28,512,0,0" VerticalAlignment="Top" Width="442"/>
【问题讨论】:
-
你能不能也分享一下这个列表框对应的XAML?
-
@DaveS 我已经为列表框添加了 XAML,谢谢
标签: c# wpf data-binding listbox itemssource