구성 집합을 관리하는 WPF 창이 있으며 구성 집합 (편집 단추)을 편집하고 구성 집합 (제거 단추)을 제거 할 수 있습니다. 이 창에는 이름별로 구성 집합을 나열하는 ListBox 컨트롤이 있으며 해당 ItemsSource에는 구성 집합 목록에 바인딩 집합이 있습니다. 나는 윈도우의 파일 뒤에 코드에서 항목을 제거하기 위해 노력하고있어ListBox 항목 제거
..
private void RemoveButton_Click(object sender, RoutedEventArgs e)
{
var removedItems = configSetListBox.SelectedItems;
foreach(ConfigSet removedItem in removedItems)
{
configSetListBox.Items.Remove(removedItem);
}
}
내 코드라는 잘못된 연산 예외를 얻을 "액세스 대신 ItemsControl.ItemsSource와 요소를 수정할 수 있습니다." ListBox에서 항목을 올바르게 제거하려면 어떤 속성에 액세스해야합니까? 아니면 WPF에서 이것을 처리하는 좀 더 우아한 방법이 있을까요? 내 경우
솔루션
private void RemoveButton_Click(object sender, RoutedEventArgs e)
{
foreach(ConfigSet removedItem in configSetListBox.SelectedItems)
{
(configSetListBox.ItemsSource as List<ConfigSet>).Remove(removedItem);
}
configSetListBox.Items.Refresh();
}
을 :) 것이다 나는 그런 식으로 캐스팅했다 있도록 ItemSource 바인딩 유형으로 목록이 있다면 내 구현은 비트의 WinForm 틱입니다. Items 컬렉션을 새로 고치지 않으면 ListBox가 업데이트되지 않습니다. 그래서 그것은 나의 해결책을 위해 필요했다.
itemsource는 (는) 관찰 가능한 컬렉션입니까? –
@vc, 그것의 목록 –
jlafay