2012-03-15 66 views
0

使用MVVM Light我有一个listbox数据绑定到几个项目的集合。 其中的一项是选定的项目之一。WP7列表框 - 如何确保通过绑定来显示选定的项目

有了这个代码,它完美的作品和视图模型结构的正确更新:

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

我的问题是,当我在第一个项目进入页面,如果所选择的项目不是它是不可见的,并且用户不知道以前的选择是什么。

我如何强制列表框始终显示所选项目?

可能通过属性或绑定。

M

回答

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 E) \t \t { \t \t \t listBox1.UpdateLayout(); \t \t \t listBox1.ScrollIntoView(listBox1.SelectedItem); \t \t}'但它不起作用 – 2012-04-21 13:27:50

+0

我找到了一个解决方法:我把更新放在continer控件的事件中。 – 2012-04-22 13:27:30

相关问题