ボタンを押したときにチェックボックスがオンになっているかどうかによって、リストボックスに表示する単純な文字列のリストがあります。私は、ボタンのリスナーにこのロジックを持っている:リストボックス内のアイテムが不規則に更新される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
を間違った時間に割り当てていますか?
更新:
リストボックスの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