Me temo que no puede configurar el campo estático de solo lectura a menos que lo haga con un "nuevo".
Es posible que pueda detectar el DataContext modificado a través de un enlace de datos a DataContext dependencyproperty. p. Registre un nuevo dp llamado "MyDataContext" y cree un enlace.
DataContext es la fuente de enlace y MyDataContext es el destino de enlace, que es DataContext ---> MyDataContext. Así que cada vez que el DataContext va a obtener su MyDataContext dp cambio de devolución de llamada. Creo que esto va a funcionar, pero no probado.
el código es como:
// dp declaration..
public static readonly DependencyProperty MyDataContextProperty = DependencyProperty.Register(null, "MyDataContext", typeof(object), typeof(MyControl), new PropertyMetadata(MyDataContextChangedCallback));
// create binding in constructor or initialization.
Binding binding = new Binding("DataContext");
BindingOperations.SetBinding(this, MyDataContextProperty, binding);
Gracias
En SL 4 es un poco atascado. Una de las opciones es hacer que su BO sea reposicionable para manejar ese cambio: ¿qué haría dentro de DataContext_changed si estuviera disponible? –