Binding 如何在Silverlight MVVM应用程序中使用self作为DataContext?
在我的Silverlight MVVM应用程序中,在视图的代码隐藏中,我将DataContext设置为viewmodel,如下所示: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
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>