2012-03-15 2 views
0

MVVM Light 사용 목록 상자가 여러 항목의 컬렉션에 바인딩되어 있습니다. 항목 중 하나가 선택한 항목 중 하나입니다.WP7 목록 상자 - 바인딩을 통해 선택한 항목이 표시되도록하는 방법

<Name="listBox1" 
ItemsSource="{Binding Path=Models}" 
SelectedItem="{Binding Path=csProfile.Model, Mode=TwoWay}"> 

내 문제는 선택 항목이없는 경우 내가 처음 항목에서 페이지를 입력 할 때 표시하고 사용자되지 않는 것입니다 :이 코드가 완벽하게 작동하고 뷰 모델 구조가 제대로 업데이트와

이전 선택이 무엇인지 알 수 없습니다.

목록 상자에 항상 선택된 항목이 표시되도록하려면 어떻게해야합니까?

아마도 속성 또는 바인딩을 통해 가능합니다.

답변

0

볼 수있는 항목을 설정하기 위해 바인딩 할 수있는 속성이 없습니다. 대신 ListBox 내의 ScrollViewer에 ScrollToVerticalOffset()을 호출하십시오.

0

여러분이 ScrollIntoView 메소드를 찾고 있다고 생각합니다. 유사한 주제는 여기에서 논의되었다 Automatic Scrolling in a Silverlight List Box

이 API 참조는 여기에 있습니다 : http://msdn.microsoft.com/en-us/library/system.windows.controls.listbox.scrollintoview(VS.95).aspx

에 UpdateLayout()를 호출하면 선택한 항목에 ScrollIntoView를 호출하기 전에해야 할 것으로 보인다.

+0

나는 다음과 같은 코드를 추가하는 시도했다 :'개인 무효 listBox1_SelectionChanged (개체를 보낸 사람, SelectionChangedEventArgs 전자) \t \t { \t \t \t listBox1.UpdateLayout를(); \t \t \t listBox1.ScrollIntoView (listBox1.SelectedItem); \t \t}'작동하지 않습니다. –

+0

해결 방법을 발견했습니다. Continer 컨트롤의 이벤트에 업데이트를 넣습니다. –

관련 문제