4

TDI & C#에 관한 두 개의 스레드를 보았습니다. 둘 다 내가 가진 질문에 실제로 대답하지 못했습니다 ...온보드 수단을 사용하는 WPF의 탭이있는 문서 인터페이스?

TDI는 요즘 거의 표준과 비슷하기 때문에 AvalonDock이나 SandDock과 같은 특별한 컨트롤을 구입해야한다는 것을 거의 상상할 수 없습니다. 탭 컨트롤 (?)이 내장 된 상태 여야합니다. 독 및 드래그 가능한 tabitem과 같은 특별한 기능은 필요하지 않습니다. 새 탭에서 모든 양식을 열면됩니다. 그게 전부 야.

모든 양식 콘텐츠 컨트롤을 사용자 정의 컨트롤에 배치하고 요청 (버튼, 메뉴 클릭 등)을하는 것과 마찬가지로 새 탭을 추가하고 이에 해당하는 사용자 정의 컨트롤을 ... 이와 같이 작성하십시오.

어떻게 할 수 있습니까? 이것은 (나에게조차도) 복잡하지 않거나 나는 무엇인가 놓치고 있습니까?!

감사합니다.

+0

글쎄, 답변으로 표시해야합니까? 3 가지가 모두 작동 할 것입니다. 저는 현재 Josh Smith가 idursun이 게시 한이 기사에서 무엇을하고 있는지 파악하려고합니다. 그것의 아주 우아한 해결책, 그러나 다소 초보자로서 나를 위해 알아 내기가 어렵습니다. 내 실제 질문에 가장 잘 대답하는 것은 조쉬 지 (Josh G.)의 게시물인데, 나는 그 사람을 표시 할 것입니다. 여러분 모두에게 큰 감사를드립니다! –

답변

5

그리 어렵지 않습니다. 그것을하는 많은 다른 방법이 있기 때문에 열심히 보인다.

이 시도 :

<TabControl x:Name="documentArea"/> 

처리기를 AddForm 버튼에 대한 : 그거야

private void AddFormClick(object sender, RoutedEventArgs e) 
{ 
    object form = GetNewForm(); 

    documentArea.Items.Add(form); 
} 

합니다. 두 가지 방법 중 하나로 GetNewForm()을 구현해야합니다. 양식을 표시하는 사용자 정의 컨트롤을 반환해야합니다.

또는 더 좋지만 아직 표시 할 문서를 반환해야합니다. 이 문서를 표시하는 데 사용할 컨트롤을 선택하려면 DataTemplate을 사용하십시오. 이 방법은 설정하는 것이 더 복잡 할 것입니다.

6

아마도 Josh Smith의 article on MVVM은 이러한 사용자 인터페이스를 설계하는 방법을 알려줍니다. 예를 들어 거기에 건설중인 탭 인터페이스 문서 인터페이스를 시작 블록으로 사용할 수 있습니다.

+0

조심스럽게 말하면 ... 조쉬 스미스의 기사는 훌륭한 참고서이지만 이해하기 쉽지 않습니다. 이 부분을 함께 처리하려면 WPF의 데이터 바인딩을 잘 처리해야합니다. –

+0

참고 자료, 좋은 참고 문헌에 링크하기 위해 upvoted. –

+0

감사합니다. @ mad9의 이전 질문을 생각하면 MVVM 구현에 더 가까워지고 있다고 생각합니다. – idursun

관련 문제