이 article을 사용하여 내 뷰 모델에서 바인딩 할 수있는 SelectionChangedCommand를 설정했습니다. 내보기 모델의 SelectionChangedCommand 실행 된 방법에서ComboBox 선택한 항목이 SelectionChangedCommand의 실행이 완료 될 때까지 설정되지 않습니다.
<ComboBox Height="20"
SelectedItem="{Binding SelectedName}"
ItemsSource="{Binding NameCollection}"
commandBehaviors:SelectionChangedBehavior.Command="{Binding SelectionChangedCommand}">
: 여기
내 뷰의 사용자가 내 콤보 상자에서 사용할 새 이름을 선택하면 지금private void SelectionChangedExecuted()
{
// The logic in this method can take up to 30 seconds at times.
}
내 문제, 그것은 걸릴 수 있습니다 것을 30 초 동안 자신의 이름이 선택 될 때까지 기다립니다. SelectionChangedExecuted 메서드가 끝날 때까지 이전 이름이 표시됩니다. 이상적으로, 그들이 이름을 선택할 때, 나는 그 이름이 즉시 나타나기를 원합니다, 그리고 나서 그들은 30 초를 기다릴 수 있습니다. 현재 설정으로이 작업을 수행 할 수 있습니까?
현재 동작 : 콤보 상자에
- 현재 항목 : "밥"
- 사용자가 선택 : "스티브"ComboxBox의 현재 항목은 아직
-30 초 "밥"동안
- 사용자는 30 초를 기다립니다 콤보 상자의 현재 항목 끝났 : 콤보 상자에
- 현재 항목 : "밥"
- 사용자가 선택 : "스티브"및 콤보 상자의 현재 항목
"스티브"는 "스티브"구인 행동이
-30 초 콤보 상자의 현재 항목은 아직 끝난 상태에서 "스티브"
30 초 동안 어떤 작업을 수행하고 있습니까? 30 초 기다려야 겠어? – Vishal
많은 양의 자원/객체를 메모리에로드합니다. 30 초는 최악의 시나리오입니다. 컬렉션 뷰를 사용하면 SelectionChangedCommand를 사용하는 대신 선택된 항목이 바로 반영됩니다. 콜렉션 뷰에서 현재 항목 변경 이벤트를 수신합니다. 이것은이 문제와 잘 맞았지만 다른 문제를 야기합니다. 이제 SelectedItem 속성을 사용하려고합니다. – jsirr13