Encuadernación a partir de elementos de un UserControl con propiedad de colección personalizada
Esta pregunta es una "secuela" deesta pregunt (He aplicado la respuesta, pero aún no funciona).
Estoy tratando de crear un control extendido ToolBar para una aplicación modular, que puede cargar sus elementos desde múltiples fuentes de datos (pero ese no es el problema que estoy tratando de resolver en este momento, ahora quiero que funcione cuando se usa como Barra de herramientas regular que se encuentra en WPF).
En breve: Quiero que los elementos de la barra de herramientas puedan vincularse a los padres de tb: ToolBar.
Tengo el siguiente código XAML:
<Window Name="myWindow" DataContext="{Binding ElementName=myWindow}" >
<DockPanel>
<tb:ToolBar Name="toolbar" DockPanel.Dock="Top" DataContext="{Binding ElementName=myWindow}>
<tb:ToolBar.Items>
<tb:ToolBarControl Priority="-3">
<tb:ToolBarControl.Content>
<StackPanel Orientation="Horizontal">
<TextBlock>Maps:</TextBlock>
<ComboBox ItemsSource="{Binding SomeProperty, ElementName=myWindow}">
Alguna información sobre los tipos:
tb:ToolBar
es unUserControl
con propiedad de dependenciaItems
de tipoFreezableCollection<ToolBarControl>
.
tb:ToolBarControl
es unUserControl
con plantilla casi idéntica a Plantilla de ContentControl.
l problema es que el enlace en laComboBox
falla (con el habitual "No se puede encontrar el origen para el enlace con referencia"), porque su DataContext es nulo.
¿Por qué
EDIT: El núcleo de la pregunta es "¿Por qué no se hereda el DataContext?", Sin él, los enlaces no pueden funcionar.
EDIT2:
Aquí está XAML para eltb:ToolBar
:
<UserControl ... Name="toolBarControl">
<ToolBarTray>
<ToolBar ItemsSource="{Binding Items, ElementName=toolBarControl}" Name="toolBar" ToolBarTray.IsLocked="True" VerticalAlignment="Top" Height="26">
EDIT 3:
Publiqué un ejemplo de lo que funciona y lo que no:http: //pastebin.com/Tyt1Xtv
Gracias por tus respuestas