如果我将master和detail放在同一个视图中,我可以让master-detail场景工作得很好。但是,我希望能够根据用户安全性定制详细信息。因此,我使用相同的viewmodel作为后端将详细信息部分移动到单独的视图。现在,当选择新的主记录时,细节不会正确更新。如果两个视图使用相同的viewmodel,那么这个工作应该没问题吗?就像我说的那样,当代码在同一个视图中时,它可以正常工作。
详细信息XAML:
<ListView x:Name="DoctorOfficesList"
Grid.Column="1"
Background="black"
HorizontalContentAlignment="Stretch"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding Path=SelectedDoctor.DoctorOfficesCollection}"
ItemTemplate="{StaticResource DoctorOfficesListTemplate}">
</ListView>
Master XAML:
<ListBox x:Name="DoctorHeaderList"
Grid.Column="0"
MinWidth="200"
MaxWidth="300"
Margin="0,0,2,0"
Background="black"
ItemsSource="{Binding Path=DoctorsList}"
SelectedItem="{Binding Path=SelectedDoctor}"
IsSynchronizedWithCurrentItem="True"
ItemTemplate="{StaticResource DoctorsListTemplate}"
ScrollViewer.HorizontalScrollBarVisibility="Hidden">
</ListBox>
我尝试了几种方法让它发挥作用。当列表框位于同一视图中时,所有方案都有效。当单独移动时,它们停止。如果重要的话我也在使用PRISMv2。
我想我的具体问题是如何让它工作?我真的需要一个活动吗?我认为,因为它们与同一个虚拟机绑在一起,所以这很容易。
答案 0 :(得分:2)
您确定两个视图都使用了视图模型的相同实例吗?我偶尔在我的视图模型中实现一个属性,它暴露GetHashCode()
的结果并在视图中绑定TextBlock
只是为了仔细检查两个应该绑定到同一个实例的东西实际上是。