Flowdocument和数据绑定

时间:2013-03-31 19:04:53

标签: wpf data-binding flowdocument

在彻底阅读了关于flowdocuments的文档(在WPF中)之后,似乎flowdocument不能轻易支持数据绑定。请说这不是真的!我有一个使用Expression Blend中的示例数据的列表框,我在textdocument中插入了一个文本块。 textblock(文本属性)被数据绑定到列表框中的字符串数据。运行项目后,我希望文本块文本随着列表框选择的改变而改变,但没有任何反应。数据绑定不起作用。使用flowdocument进行数据绑定的最简单方法是什么?

这是XAML。

<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="WpfApplication1.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640" Height="480">
<Window.Resources>
    <DataTemplate x:Key="ItemTemplate">
        <StackPanel>
            <TextBlock Text="{Binding Property1}"/>
            </StackPanel>
    </DataTemplate>
</Window.Resources>

<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource SampleDataSource}}">
    <FlowDocumentScrollViewer Margin="120,64,256,126">
        <FlowDocument>
            <Paragraph><Run Text="Only A Test"/><InlineUIContainer>
                    <TextBlock TextWrapping="Wrap" Text="{Binding Collection[0].Property1}" Height="56" Width="112"/>
                </InlineUIContainer></Paragraph>
        </FlowDocument>
    </FlowDocumentScrollViewer>
    <ListBox ItemTemplate="{DynamicResource ItemTemplate}" ItemsSource="{Binding Collection}" Margin="0,83.847,52,62.153" HorizontalAlignment="Right" Width="200"/>
</Grid>
</Window>

1 个答案:

答案 0 :(得分:1)

根据2009年4月的this Microsoft documentation,这是不可能的:

  

虽然流文档中有许多强大的功能,但如果您的文档是从动态数据生成的,那么您会遇到一些问题:流文档中不支持数据绑定。流文档元素(Section,Table,Run,Paragraph等)是依赖项对象,但不定义任何允许您动态更改或生成内容的依赖项属性。