在我的Silverlight MVVM应用程序中,在视图的代码隐藏中,我将DataContext设置为viewmodel:
this.DataContext = new MyViewModel();
但是,我需要将视图中的一个控件绑定到同一视图中的另一个控件。所以,我需要设置控件的DataContext,我将绑定添加到视图本身。
浏览后,似乎在 WPF 中执行此操作的最终方法是添加:
DataContext="{Binding
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type UserControl}}
到控件。
然而,Silverlight 4中不存在AncestorType属性。 Silverlight 中是否存在用于此场景的等效,明确的代码行?我没有遇到任何显示最佳实践的网站或答案。
这可以帮助我回答earlier question,我试图在视图中绑定自定义控件和属性。
答案 0 :(得分:1)
你能解释一下你想做什么吗?
您可以使用ElementName
class
Binding
以下是msdn page的示例示例:
<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>