Problem polega na tym, że RelativeSource
nie działa w następującym przypadku. Używam Silverlight 5.RelativeSource and Popup
//From MainPage.xaml
<Grid x:Name="LayoutRoot" Background="White" Height="100" Width="200">
<Popup IsOpen="True">
<TextBlock Text="{Binding Path=DataContext, RelativeSource={RelativeSource AncestorType=Grid}}" />
</Popup>
</Grid>
//From MainPage.xaml.cs
public MainPage()
{
InitializeComponent();
DataContext = "ololo";
}
Jeżeli ustawić punkt przerwania na wiązaniu, będę się błąd:
System.Exception: BindingExpression_CannotFindAncestor.
Jeśli używam ElementName=LayoutRoot
zamiast RelativeSource
, wszystko będzie OK.
Dlaczego powiązanie źródła względnego nie działa?
Ok. Jest to jasne w przypadku kontrolek wyskakujących okienek Czy istnieje sposób użycia źródła względnego w ComboBoxItemTemplate? –