Is this the same hierarchy you are using? This works fine. Note I'm using your DataContext binding to self, and accessing properties from both the base and the derived classes...
namespace WPFTester
{
public class BaseClass : Window
{
public string BaseClassString { get; set; }
public BaseClass()
{
BaseClassString = "BaseClassString";
}
}
public partial class MainWindow : BaseClass
{
public string DerivedClassString { get; set; }
public MainWindow()
{
DerivedClassString = "DerivedClassString";
InitializeComponent();
}
}
}
<local:BaseClass x:Class="WPFTester.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:WPFTester"
Title="MainWindow" Height="350" Width="525"
DataContext="{Binding RelativeSource={RelativeSource Self}}" >
<Grid>
<StackPanel >
<TextBlock Text="{Binding Path=BaseClassString}" />
<TextBlock Text="{Binding Path=DerivedClassString}" />
</StackPanel>
</Grid>
</local:BaseClass>