ObservableCollection을 AvalonDock 2.0에 바인딩합니다. AvalonDock 2.0에는 컬렉션의 모든 항목이 AvalonDock 문서입니다.AvalonDock 2.0의 컬렉션에서 LayoutDocument의 제목 바인딩
<ad:DockingManager DocumentsSource="{Binding Path=OpenProjects, Mode=TwoWay}" ActiveContent="{Binding Path=CurrentProject, Mode=TwoWay}" LayoutItemTemplateSelector="{StaticResource ProjectTemplateSelector}">
...
</ad:DockingManager>
문제는 그 문서 제목 등 (재산 CurrentProject
에서 Name
에 지정된) 각 항목의 이름을 표시 할 수 있습니다 : 이것은 내가 바인딩 할 방법이다. 이것은 내가 무엇을 시도했다입니다 :
<ad:DockingManager.DocumentHeaderTemplate>
<DataTemplate>
<TextBlock DataContext="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ad:DockingManager}, Path=ActiveContent, Mode=OneWay}" Text="{Binding Path=Name}" />
</DataTemplate>
</ad:DockingManager.DocumentHeaderTemplate>
내가 하나 개의 문서 만 열려있는 경우는 잘 작동하지만 몇 가지있을 때, 그들은 모두 현재 프로젝트의 Name
을 보여줍니다. 예를 들어 "A", "B", "C"및 "D"라는 이름의 네 개의 프로젝트가 열려있는 경우 현재 문서 "C"를보고 있으면 네 개의 탭 모두 제목이 "C" "문서"B "로 변경하면 이름이 모두"B "로 바뀝니다.
이 변경을 방지 할 수있는 방법이 있습니까? 바인딩 모드를 OneTime
으로 설정하려고했지만 작동하지 않는 것 같습니다.
니스! 이러한 문제에 대한 참고 자료로 사용 가능한 템플릿은 다음과 같은 의미로 사용됩니다 :'AnchorableTitleTemplate' = (도킹 된) 도구 창,'DocumentHeaderTemplate' = 문서 창/편집기,'DocumentPaneMenuItemHeaderTemplate' = 오른쪽 드롭 다운 메뉴 항목 탭 헤더의'DocumentTitleTemplate' = 유동 문서 창. –