У меня есть простой список строк, которые я хочу отобразить в списке, в зависимости от того, установлен ли флажок при нажатии кнопки. У меня есть эта логика в моих кнопках слушателя:Элементы в обновлении списков беспорядочно WPF
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
в неправильное время?
Update:
Часть XAML для списка:
<ListBox x:Name="permListBox" ItemsSource="{Binding permissionList}" HorizontalAlignment="Left" Height="36" Margin="28,512,0,0" VerticalAlignment="Top" Width="442"/>
Вы также можете поделиться соответствующим XAML для этого списка? –
@DaveS Я добавил XAML для списка, спасибо – James