2011-11-25 7 views
1

목록 상자의 동작과 관련하여이 미묘한 프로그램이 있습니다. 내 listbox는 viewmodel에서 관찰 가능한 목록과 바인딩됩니다. 목록 상자에 항목을 추가하는 데는 두 가지 방법이 있습니다. 첫 번째는 하나의 항목을 추가 한 다음 해당 항목을 직접 선택하는 것입니다. 이것은 잘 작동합니다.하단의 목록 상자 항목이 자동으로 선택되지 않았습니다.

두 번째 방법은 이름이 lisbox에 두 개 이상의 항목을 추가하는 LOAD입니다. 이제 문제는 목록 상자보다 많은 항목을로드 할 때보기에 있지 않은 항목 (하단의 항목을 순서대로 스크롤해야 함)이 자동으로 선택되지 않은 경우입니다.

볼 기본적으로 있습니다

만 항목을 선택한 것들이다 :

private void ItemContainerGenerator_StatusChanged(object sender, EventArgs e) 
{ 

    if (listBoxAddresses.ItemContainerGenerator.Status != GeneratorStatus.ContainersGenerated) return; 

    for (int i = 0; i < TestSetting.DeviceSettings.Count; i++) 
    { 
    ListBoxItem myListBoxItem = (ListBoxItem)(listBoxAddresses.ItemContainerGenerator.ContainerFromItem(TestSetting.DeviceSettings[i])); 

    if (myListBoxItem != null) 
    { 
     myListBoxItem.IsSelected = true; 
    } 
    } 
    listBoxAddresses.ItemContainerGenerator.StatusChanged -= ItemContainerGenerator_StatusChanged; 
} 

나는이 목록 상자 단지 자연적인 동작입니다 궁금.

답변

0

난 그냥 내 목록 상자를 설정 ... 지금이 실현 :

VirtualizingStackPanel.IsVirtualizing="False" 

모든 트릭을했다. 아이디어 덕분에 Dr.WPF에게 감사드립니다. 가상화 (성능)를 끄기위한 결과가 있지만 그다지 중요하지는 않습니다.

관련 문제