I tried to use databinding in UserControl (TestControl) which is inside LayoutAnchorable, but I failed. But when I used TextBox instead of TestControl, data passed from FileViewModel to TextBox successfully.
Questions:
When don't set TestControl.DataContext, why databiding is trying to find MyTextCtrl in FileViewModel which actually belongs to TestControl.
MyTextCtrl is a string.
TestControl is inside a pane:
Questions:
When don't set TestControl.DataContext, why databiding is trying to find MyTextCtrl in FileViewModel which actually belongs to TestControl.
System.Windows.Data Error: 40 : BindingExpression path error: 'MyTextCtrl' property not found on 'object' ''FileViewModel' (HashCode=3989297)'. BindingExpression:Path=MyTextCtrl; DataItem='FileViewModel' (HashCode=3989297); target element is 'TextBox' (Name=''); target property is 'Text' (type 'String')
And when set TestControl.DataContext = this (the TestControl itself), why databinding is trying to find MyTextFile in TestControl which actually belongs to FileViewModel?System.Windows.Data Error: 40 : BindingExpression path error: 'MyTextFile' property not found on 'object' ''TestControl' (Name='')'. BindingExpression:Path=MyTextFile; DataItem='TestControl' (Name=''); target element is 'TestControl' (Name=''); target property is 'MyTextCtrl' (type 'String')Code Details:MyTextCtrl is a string.
TestControl is inside a pane:
<avalonDock:DockingManager.LayoutItemTemplateSelector>
<local:PanesTemplateSelector>
<local:PanesTemplateSelector.FileViewTemplate>
<DataTemplate>
<StackPanel>
<local:TestControl MyTextCtrl="{Binding MyTextFile}" />
</StackPanel>
</DataTemplate>
</local:PanesTemplateSelector.FileViewTemplate>
...
FileViewTemplate uses FileViewModel as model. And it is inside an anchorable pane<avalonDock:LayoutRoot>
<avalonDock:LayoutPanel Orientation="Horizontal">
<avalonDock:LayoutAnchorablePane Name="ToolsPane" DockHeight="150" DockWidth="230">
</avalonDock:LayoutAnchorablePane>
<avalonDock:LayoutDocumentPane/>
</avalonDock:LayoutPanel>
</avalonDock:LayoutRoot>