If I create a binding to the IsReadOnly property of the DataGridTextColumn, it does not actualize. If I set it through markup, it works.
I found this solution which allows you to bind to data when the DataContext is not inherited: http://www.thomaslevesque.com/2011/03/21/wpf-how-to-bind-to-data-when-the-datacontext-is-not-inherited/
Add the BindingProxy class Thomas wrote and add this resource to your DataGrid:
Now you can bind to your DataContex via the Data property of the BindingProxy just as you would expect.