I have a gridview on a second tabitem within a tabcontrol, and the column header cannot be binded.
It gives error
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='RadGridTest1.MainWindow', AncestorLevel='1''. BindingExpression:Path=DataContext.Header2; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
--
MainWindowViewModel.cs
public class MainWindowViewModel
{
public string Header2
{
get { return "Header 2"; }
}
}
--
MainWindow.xaml
<Window x:Class="RadGridTest1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:RadGridTest1"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainWindowViewModel />
</Window.DataContext>
<Grid>
<TabControl>
<TabItem Header="Tab 1">
</TabItem>
<TabItem Header="Tab 2">
<telerik:RadGridView AutoGenerateColumns="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn>
<telerik:GridViewDataColumn.Header>
<TextBlock Text="{Binding Path=DataContext.Header2, RelativeSource={RelativeSource AncestorType={x:Type local:MainWindow}}}"/>
</telerik:GridViewDataColumn.Header>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</TabItem>
</TabControl>
</Grid>
</Window>
--
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
It gives error
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='RadGridTest1.MainWindow', AncestorLevel='1''. BindingExpression:Path=DataContext.Header2; DataItem=null; target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
--
MainWindowViewModel.cs
public class MainWindowViewModel
{
public string Header2
{
get { return "Header 2"; }
}
}
--
MainWindow.xaml
<Window x:Class="RadGridTest1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:RadGridTest1"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainWindowViewModel />
</Window.DataContext>
<Grid>
<TabControl>
<TabItem Header="Tab 1">
</TabItem>
<TabItem Header="Tab 2">
<telerik:RadGridView AutoGenerateColumns="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn>
<telerik:GridViewDataColumn.Header>
<TextBlock Text="{Binding Path=DataContext.Header2, RelativeSource={RelativeSource AncestorType={x:Type local:MainWindow}}}"/>
</telerik:GridViewDataColumn.Header>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</TabItem>
</TabControl>
</Grid>
</Window>
--
MainWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}