Относительная привязка в Silverlight

#silverlight #xaml

#silverlight #xaml

Вопрос:

У меня есть ItemsControl в моем приложении. Страница, связанная с ItemsControl, привязана к модели представления. Модель представления включает в себя два свойства: люди и параметры. Для каждого пользователя я хочу отобразить список параметров в выпадающем списке. Параметры определены в моей модели представления. Мой код выглядит следующим образом:

 <ItemsControl ItemsSource="{Binding Path=People}">
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <StackPanel Orientation="Horizontal">
        <ComboBox ItemsSource="Options" DisplayMemberPath="FullName" />
      </StackPanel>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
</ItemsControl>
 

Однако, поскольку каждый элемент представляет человека, поле со списком просматривает объект Person для свойства с именем «Параметры». Как мне ссылаться на модель представления для из выпадающего списка вместо Person?

Спасибо!

Ответ №1:

Вы можете использовать следующий метод

 <ComboBox ItemsSource="{Binding ElementName=LayoutRoot, Path=DataContext.Options}" DisplayMemberPath="FullName" />
 

Предполагая, что DataContext вашего LayoutRoot является моделью представления. Если нет, вы можете присвоить своему ItemsControl имя и использовать его для имени элемента.