2014-02-11 3 views
7

을 처리하기위한 내장 방법 나오나요 - 열린 Anchorables를 관리하는 중 그들은 컬렉션에서 어딘가에 저장되어 다시 검색하고 표시 할 수 있습니까?는 DockingManager는 Anchorables

예를 들어 사용자가 위의 코드 (A1)에서 첫 번째 코드를 닫으면 어떻게됩니까?
어떻게 다시 표시 할 수 있습니까?

앵커리지 닫기 및 복원을 처리하는 일반적인 워크 플로는 무엇입니까?

답변

9

xceed 태그를 추가 했으므로 Avalondock 2.0을 사용하고 있다고 가정합니다.

예를 들어, 사용자가 위의 코드 (A1)에서 첫 번째 코드 인 을 어떻게 닫습니까?

고정 할 수있는 상태가 숨겨집니다. 앵커 블 (예 : <a:LayoutAnchorable Title="A1" x:Name="myAnchorable">)의 이름을 지정하면보기의 코드에서 this.myAnchorable.IsHiddentrue이됩니다.

어떻게 다시 표시 할 수 있습니까? 당신의 anchorable에 대한

전화 .Show() : this.myAnchorable.Show();


말했다되고 그건

, 지금 쉽게 MVVM (특히 바인딩)를 사용 할 수 있기 때문에 Avalondock 2.0 1.0 완전히 다르다. 따라서 LayoutAnchorable을 XAML에 정적으로 추가하지 않고 대신 DockingManager이라는 AnchorablesSource 속성에 대한 바인딩을 사용하여 ViewModels 컬렉션을 관리하는 것이 가장 좋습니다. 그런 다음 Visibility 속성에 바인딩 된 ViewModel 속성을 가져 오거나 설정해야하기 때문에 앵커리지를 표시하거나 숨기는 것이 쉽습니다. LayoutAnchorableItem.

Avalondock에서 제공하는 WPF 예제를 볼 수 있습니다. AvalonDock.MVVMTestApp이라는 프로젝트가 their code source입니다.

+0

고마워요.이 말은 정말로 저를 위해서 말입니다. 문서에서 찾을 수 없으며 언급 한 소스를 보지 못했습니다 (확장 된 툴킷 페이지를보고있었습니다). 샘플이 실제로 도움이됩니다. (필자는 아직 6 시간 안에 상을 수여합니다.) – TimothyP

+0

바인딩 예제는 대부분 AvalonDock의 LayoutContent 클래스가 패널을 숨기려고 할 때마다 NullReference 예외를 던지기는하지만 실제로 대부분의 경우에 적용됩니다 (실제로는 닫기를 시도합니다. 그것은 숨어있는 대신에 ..) 일단 패널을 숨기면 (false로 설정하면 결코 다시 볼 수 없습니다). 곧 별도의 질문으로 게시 할 것입니다. – TimothyP

+0

@TimothyP hide에 대한 null 참조에 대한 해결책을 찾아 냈습니까? 나는 그 문제에도 뛰어 들고있다. – clcto