Binding 如何在Silverlight MVVM应用程序中使用self作为DataContext?

Binding 如何在Silverlight MVVM应用程序中使用self作为DataContext?,binding,silverlight-4.0,mvvm,datacontext,Binding,Silverlight 4.0,Mvvm,Datacontext,在我的Silverlight MVVM应用程序中,在视图的代码隐藏中,我将DataContext设置为viewmodel,如下所示: this.DataContext = new MyViewModel(); 但是,我需要将视图中的一个控件绑定到同一视图中的另一个控件。因此,我需要设置将绑定添加到视图本身的控件的DataContext 浏览之后,在WPF中执行此操作的最终方法似乎是添加: DataContext="{Binding RelativeSource={RelativeS

在我的Silverlight MVVM应用程序中,在视图的代码隐藏中,我将DataContext设置为viewmodel,如下所示:

this.DataContext = new MyViewModel();
但是,我需要将视图中的一个控件绑定到同一视图中的另一个控件。因此,我需要设置将绑定添加到视图本身的控件的DataContext

浏览之后,在WPF中执行此操作的最终方法似乎是添加:

DataContext="{Binding  
    RelativeSource={RelativeSource FindAncestor,  
    AncestorType={x:Type UserControl}}
到控制室

但是,Silverlight 4中不存在AncestorType属性。在Silverlight中是否有用于此场景的等效、确定的代码行?我还没有看到任何网站或答案显示了这方面的最佳实践


这可能有助于我回答一个问题,即我试图在视图中绑定自定义控件和属性。

您能解释一下要做什么吗

您可能可以使用
Binding
中的
ElementName

以下是一个示例:


选择一种颜色:
绿色
蓝色
红色

问题是我想绑定到控件,而不仅仅是控件的属性。我创建了自己的控件,该控件扩展了BusyIndicator,使其具有control类型的额外属性。目标是当BusyIndicator失去焦点时,我对绑定到的控件调用focus()命令。但是,我无法在XAML中为我的额外属性设置控件,并认为它与DataContext相关。见我的亲戚。哦,我明白了-对不起,但我还是不完全理解你的问题。
<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>