2012-07-08 2 views
2

텍스트 뷰어에서 텍스트 검색 결과를 반환하는 treeView가 있습니다. MVVM을 사용하여 WPF에서 TreeView 인쇄

<TreeView ItemsSource="{Binding FirstGeneration}" 
      ...> 
    <TreeView.ItemContainerStyle.../> 
    <TreeView.ItemTemplate> 
    <HierarchicalDataTemplate ItemsSource="{Binding Children}"> 
     <StackPanel Orientation="Horizontal" FlowDirection="LeftToRight"> 
     <TextBlock Text="{Binding PreExp}" /> 
     <TextBlock Text="{Binding Exp}" 
      FontStyle="{Binding FontStyle}" 
      Foreground="{Binding Color}" /> 
     <TextBlock Text="{Binding PostExp}" /> 
     </StackPanel> 
    </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

(우리는 목록으로 C++ 프로젝트의 결과를 얻을 수 있기 때문에), 우리는 논리적 트리를 만들 나무와 같은 결과를 얻을 빨간색 특급을 표시합니다. 나는 그들을 3 개의 textBoxes로 분리했다.

트 리뷰는 diffrent UserControl을에 - 그리고 나는 SearchView (UC)에 넣어.

지금 나는이 나무에 모든 결과를 인쇄하고 싶습니다. 나는 빨간색으로 검색 결과에 중점을두고 문서를 인쇄하는 것을 선호합니다.

그것은 this 것 같습니다.

나는 을 시도했다. PrintDialog.PrintVisual. 문제는 ViewModel에서 뷰 등을 알 수 없기 때문에 트리 또는 검색 식에 연결할 수 없다는 것입니다.

코드에서이 코드를 사용해 보았지만 실제로 볼 수있는 것이 아니라 전체 트리 결과. 도움

FlowDocument doc = new FlowDocument(); 
foreach (SearchObjectViewModel item in tv.Items) 
    doc.Blocks.Add(new Paragraph(new Run(item.PreExp+item.Exp+item.PostExp))); 
pd.PrintDocument(((IDocumentPaginatorSource)doc).DocumentPaginator,exp); 

10 배 4 :

PrintDialog dialog = new PrintDialog(); 
if (dialog.ShowDialog() != true) 
    return; 
dialog.PrintVisual(SearchResultTree, "The Search Result Tree"); 

또한 나는 FlowDocument과 옵션을 시도!

답변

0

문제는 뷰 모델 뷰를 모르기 때문에 나는 나무 또는 검색 식에 도달 할 수 있다는 것 등

발생해야 MVVM, 뷰와 뷰 모델 사이의 상호 작용을 사용하여 INotifyPropertyChanged Interface을 통해 하나의 UI 요소에 하나의 속성을 매핑하거나 바인딩 할 수 있습니다. Set에서 콜백을받습니다. 여기

mvvm-binding-treeview-item-changed 내 예 중 하나입니다. 희망은 그것이 사용하는 것입니다.

관련 문제