2011-12-20 3 views
0

今回は、ヘルプウィンドウのミニアプリケーション(他のプロジェクトのイメージ編集アプリケーションを含む)に取り組んでいます。XAMLのみでツリービューからリソースをflowdocumentreaderにバインドする方法はありますか?

私は2つの列とグリッドスプリッターを間に持つグリッドを持っています。左側にはいくつかのノード(XAMLで設定されている)と右側にflowdocumentreaderというツリービューがあります。

私は自分のドキュメントを、各ノードごとに1つずつ、私がフロードキュメントリーダーに表示したいと思う約10のリソース拠点を持っています。私は実際にこれをいかにバインドするのか分かりません!どのように私はこれを行うことができます誰も考えている?私のコード今のところ(一つだけのResourceDictionaryを追加)

 <Window.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary x:Name="About" Source="About.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 
</Window.Resources> 
<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="auto"/> 
     <ColumnDefinition Width="auto"/> 
     <ColumnDefinition Width="500"/> 
    </Grid.ColumnDefinitions> 
    <GridSplitter HorizontalAlignment="Right" 
       VerticalAlignment="Stretch" 
       Grid.Column="1" ResizeBehavior="PreviousAndNext" ResizeDirection="Columns" 
       Width="5" Background="#FFBCBCBC"/> 
    <TreeView Width="250" Grid.Column="0" FontFamily="Segoe UI" FontSize="16"> 
     <TreeViewItem Header="Help"> 
      <TreeViewItem Header="About the application"></TreeViewItem> 
      <TreeViewItem Header="Getting started"></TreeViewItem> 
      <TreeViewItem Header="Images from Flickr"></TreeViewItem> 
      <TreeViewItem Header="Images from the computer"></TreeViewItem> 
      <TreeViewItem Header="Images from the browser"></TreeViewItem> 
      <TreeViewItem Header="Editing"> 
       <TreeViewItem Header="Open and Save"></TreeViewItem> 
       <TreeViewItem Header="Uploading"></TreeViewItem> 
       <TreeViewItem Header="Crop"></TreeViewItem> 
       <TreeViewItem Header="Resize"></TreeViewItem> 
       <TreeViewItem Header="Filters"></TreeViewItem> 
       <TreeViewItem Header="Adding text"></TreeViewItem> 
       <TreeViewItem Header="Remove red eyes"></TreeViewItem> 
      </TreeViewItem> 
     </TreeViewItem> 
    </TreeView> 
    <FlowDocumentReader Grid.Column="2" > 

    </FlowDocumentReader> 
</Grid> 

答えて

0

あなたがロードされる文字列値を定義するには、ノードのTagプロパティを使用することができます。 次に、選択したノードのタグにバインディングを行います。

あなたは、あなたがファイル/ res.Dictまたは何からドキュメントのコンテンツを読み込むことができますコンバータを使用する場合:

<TreeView x:Name="documentTreeView" Width="250" Grid.Column="0" FontFamily="Segoe UI" FontSize="16"> 
    <TreeViewItem Header="Help"> 
     <TreeViewItem 
     Header="About the application" 
     Tag="ResDict1.xaml"></TreeViewItem> 

....

<FlowDocumentReader Document="{Binding ElementName=documentTreeView, Path=SelectedItem.Tag, Converter={StaticResource stringToFlowDocumentConverter}}" Grid.Column="2" /> 
関連する問題