Here the purpose is to be able to bind a Command on a Button which is under 2 levels of ItemsControl without using the “Ancestor” stuff.

So the classic way of doing this:

the following should work :

But we can do something better and more readable.

Create a new helper class:

Then in the View, add a resource to this new helper class:

Then in your Grid:

So here we don’t need anymore to know at which level of the binding we are.

We just call the Proxy (DataContextProxy) to set the binding.