我正在使用.NET 4.5,我喜欢将数据绑定到flowdocument。但它会产生一些问题。
第一种情况是我通过xaml加载文档:
<FlowDocument>
<Paragraph>
<Run Text="{Binding FirstName, FallbackValue='error on binding'}" />
</Paragraph>
</FlowDocument>
当我加载它并将DataContext作为
时document = ... as FlowDocument;
document.DataContext = MyObject;
结果是,显示了绑定定义的FallbackValue(表示显示值'绑定时出错')。那对我说,数据绑定会发生一些事情,但不是我想要的('FirstName'属性的值)。
第二种情况是我通过代码创建文档:
var inline = new Run();
inline.DataContext = SelectedPerson;
var binding = new Binding("FirstName");
binding.FallbackValue = "an error occurred";
inline.SetBinding(Run.TextProperty, binding);
var block = new Paragraph(inline);
document = new FlowDocument(block);
有效!但是当我在设置绑定后设置DataContext时它没有。然后再次显示值'绑定错误'。
最后我想通过包含所有绑定定义的xaml文件加载文档,设置DataContext(不明确知道哪些绑定在里面)。它似乎非常接近这一点,但我不能采取最后一步。
有人知道怎么做吗?
祝你好运, 托