Основные детали по отдельным представлениям в WPF - PullRequest
0 голосов
/ 19 апреля 2010

Я могу заставить сценарий детализации мастера работать просто отлично, если держать мастер и детали вместе в одном виде. Однако я хочу иметь возможность адаптировать презентацию деталей на основе безопасности пользователя. Поэтому я переместил раздел сведений в отдельное представление, используя ту же модель представления, что и бэкэнд. Теперь детали не обновляются должным образом при выборе новой основной записи. Если два представления используют одну и ту же модель представления, разве это не должно работать нормально? Как я уже говорил, когда код находится в одном представлении, он работает нормально.

деталь XAML:

<ListView x:Name="DoctorOfficesList"
              Grid.Column="1"
              Background="black"
              HorizontalContentAlignment="Stretch"
              IsSynchronizedWithCurrentItem="True"
              ItemsSource="{Binding Path=SelectedDoctor.DoctorOfficesCollection}"
              ItemTemplate="{StaticResource DoctorOfficesListTemplate}">
    </ListView>

Мастер 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.

Наверное, мой конкретный вопрос: как мне заставить это работать? Мне действительно нужно событие? Я думаю, так как они привязаны к одной и той же виртуальной машине, это будет несложно.

1 Ответ

2 голосов
/ 19 апреля 2010

Вы уверены, что оба вида используют один и тот же экземпляр модели вида? Я иногда реализую свойство в моей модели представления, которое отображает результат GetHashCode() и привязывает TextBlock к нему в представлении, чтобы просто перепроверить, что две вещи, которые должны быть связаны с одним и тем же экземпляром, на самом деле.

...