virutalzation을 true로 만들었을 때 콤보 상자 스타일과 같은 이상한 문제가 발생했습니다. 콤보 상자에서 콤보 상자 항목의 모든 확인란을 선택했는지 확인했습니다.Combobox 가상화 문제
은 ItemsPanel 속성에, 내가
<Setter Property="ItemsPanel">
<Setter.Value>
<ItemsPanelTemplate>
<VirtualizingStackPanel IsItemsHost="True"
IsVirtualizing="True"
VirtualizationMode="Recycling" />
</ItemsPanelTemplate>
</Setter.Value>
</Setter>
아래로 그러나 이전과 뷰를 스크롤 한 후 VirtualizingStackPanel 일부 사용자 지정 스타일을했습니다, 그것은 다릅니다.
는 예를 들어, 여기에 내가 여기에 NULL을 제외한 아무것도 얻을,
ComboBoxItem cmbItem = ComboBox1.ItemContainerGenerator.ContainerFromItem(ComboBox1.Items[0]) as ComboBoxItem;
으로 항목 패널을 아래로 스크롤 한 후 콤보 상자의 첫 번째 항목을 얻으려고하지만.
어쨌든 우리는 virutalization을 사용하여 이것을 달성 할 수 있습니까? (나는 이미 가상화하고 있음을 알고있다!). 또는 가상화를 제거하고 다른 솔루션을 생각해야합니다. 우리는 virutalization 속성없이 콤보 박스가 매우 느리게로드되는 것을 보았습니다.
의견이 있으십니까? 사전에
감사합니다! :)
왜 첫 번째 (또는 특정) ComboBoxItem에 액세스하겠습니까? 어쩌면 여기에 또 다른 접근법이있을 수 있습니다. 가상화 모드에서 얻고 자하는 항목이 실제로 존재하지 않을 수도 있습니다 (보이지 않고로드되지 않음). 따라서 콜백/이벤트를 처리해야합니다. –
첫 번째 콤보 박스 항목은 '모두 선택'확인란의 유형입니다. 체크하면 모든 콤보 박스 항목이 선택됩니다. 그리고 일부 콜백/이벤트를 처리한다고 말하면 코드에서 추가 오버 헤드가 발생할 것이라고 생각합니다. –
모든 확인란을 선택하고 *** 데이터 항목 ***을 수정하려면 각 CheckBox가 데이터 항목의 일부 기본 부울 속성과 일치해야합니다. –