Как использовать self в качестве DataContext в приложении Silverlight MVVM? - PullRequest
0 голосов
/ 17 января 2012

В моем приложении Silverlight MVVM, в выделенном для кода виде, я установил DataContext для модели представления следующим образом:

this.DataContext = new MyViewModel();

Однако мне нужно привязать один элемент управления в представлении к другомув том же виде.Итак, мне нужно установить DataContext элемента управления, в который я добавляю привязку к самому представлению.

После просмотра, кажется, что это окончательный способ сделать в WPF добавляется:

DataContext="{Binding  
    RelativeSource={RelativeSource FindAncestor,  
    AncestorType={x:Type UserControl}}

к элементу управления.

Однако свойство AncestorType не существует в Silverlight 4. Существует ли эквивалентная, определенная строка кода, которая используется для этого сценария в Silverlight ?Я не сталкивался ни с одним веб-сайтом или ответом, который демонстрировал бы наилучшую практику для этого.

Это может помочь мне ответить на предыдущий вопрос , где я пытаюсь связать пользовательский элемент управления и свойство ввид.

1 Ответ

1 голос
/ 17 января 2012

Можете ли вы объяснить, что вы хотите сделать?

Возможно, вы можете использовать ElementName из Binding класс

Вот пример примера со страницы msdn :

<Border Margin="10" BorderBrush="Silver" BorderThickness="3" Padding="8">
  <DockPanel>
    <TextBlock>Choose a Color:</TextBlock>
    <ComboBox Name="myComboBox" SelectedIndex="0">
      <ComboBoxItem>Green</ComboBoxItem>
      <ComboBoxItem>Blue</ComboBoxItem>
      <ComboBoxItem>Red</ComboBoxItem>
    </ComboBox>
    <Canvas>
      <Canvas.Background>
        <Binding ElementName="myComboBox" Path="SelectedItem.Content"/>
      </Canvas.Background>
    </Canvas>
  </DockPanel>
</Border>
...