【发布时间】:2015-12-15 20:02:57
【问题描述】:
我有一个 ShellViewModel,其中包含三个 ViewModel 类型的属性:
- 一个公共
CurrentScreen属性; - 两个私有:
FirstViewModel和SecondViewModel属性。
FirstViewModel 有一个ObservableCollection<Foo> FooCollection 和一个SelectedFoo 类型为Foo 的属性。它是双向绑定到 View 中的 DataGrid,即 DataTemplate:
<DataGrid x:Name="setupsSensoresDataGrid"
ItemsSource="{Binding Source={StaticResource FooCollectionViewSource}}"
SelectedItem="{Binding SelectedFoo, Mode=TwoWay}">
....
问题是,当我在第一个屏幕并选择一个项目时,当我转到第二个屏幕并返回时,选择丢失了。
我想知道在从一个屏幕切换到另一个屏幕时如何保留选择(视觉上和逻辑上)。
在我看来,当视图(一个 DataTemplate)被导航走时,TwoWay 数据绑定正在取消选择 SelectedFoo。
【问题讨论】:
-
可能重复(但 IMO 的解决方案有点不雅):stackoverflow.com/questions/8808076/…
-
你能提供你的视图模型代码吗?也许您每次更改数据模板时都在实例化一个新的视图模型,因此 重置
SelectedFoo属性?
标签: wpf mvvm mvvm-light