2011-12-20 86 views
0

这次我正在开发一个帮助窗口小应用程序(包括在其他项目中,图像编辑应用程序)。如何仅通过XAML将资源绑定到树视图的flowdocumentreader?

我有一个网格有两列和一个网格中间。在左边,我有一个树形视图,其中有几个节点(在XAML中设置),右边是一个flowdocumentreader。

我有大约10个资源缓存,其中我保留我的文档,每个节点一个,我想在我的flowdocumentreader中显示。我其实不知道如何绑定这个!任何人有一个想法,我怎么能做到这一点?到目前为止我的代码(只有一个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

您可以使用节点的标签属性来定义一个字符串值被加载。 然后在所选节点的标签上进行绑定。

如果再使用一个转换器,你可以从文件/ 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" />