问题描述
|
某处有清单吗?昨天我花了很多时间试图将ObservableCollection 绑定到RichTextBox,然后在对FlowDocument不起作用时(我最终找到了一个简单的解决方法)。如果没有列表,是否有一些智能技巧可以找出来?我发现FlowDocument不支持将数据绑定到集合真的很奇怪。它具有DataContext属性,该属性显示在Intellisense中,因此我认为有某种方法可以绑定集合。再加上支持单项绑定的事实,使我确定我找不到合适的属性。难道每个人最终都很难解决这个问题,还是我错过了明显的事情?
[编辑-上面的斜体文本是编辑内容]
我想我是个初学者,我什至都不知道该如何正确地提问。我有一半的答案。我现在真正想知道的是两件事。
我如何分辨哪些控件可以绑定到集合(以下答案是具有ItemsSource属性的任何控件)
在查看控件时,我如何知道可以将数据绑定到哪些属性是依赖项属性? (我确实意识到-刚才-当我进入浏览器并查看每个属性时,摘要部分提到了哪些属性是依赖项属性。单击控件中的每个属性都比较费力,但是如果可以,是最简单的找出方法)。
解决方法
从FrameworkElement派生的任何内容(据我所知是每个WPF控件)都支持数据绑定。但是,绑定集合需要特殊的绑定类型。您将需要绑定到ItemsControl或使用具有ItemsSource DependencyProperty的控件
, 所有WPF控件几乎在每个属性上都支持DataBinding。如果您发布具体示例,我们将能够更好地为您提供帮助。
, 任何“ 0”都支持数据绑定。
目标属性必须是依赖项属性。大多数UIElement属性是依赖项属性,大多数依赖项属性(只读属性除外)默认情况下支持数据绑定。 (只有DependencyObject类型可以定义依赖项属性,并且所有UIElement都从DependencyObject派生。)
在
RichTextbox
或FlowDocument
的情况下,您可以从.Net 4.0开始,通过Run.Text
依赖项属性实现绑定。但是请记住RichTextBox
:
不支持将文本绑定到包含在“ 4”中的“ 5”对象。在RichTextBox
内进行编辑操作可能会导致装订被清除。
您也可以绑定Document
属性,但是,如果需要其中包含的文本数据,则可能需要一些其他逻辑。