哪个WPF控件支持数据绑定?

时间:2011-06-14 18:28:45

标签: wpf data-binding wpf-controls

某处有名单吗?昨天我花了很多时间尝试将 ObservableCollection< string> 绑定到RichTextBox,然后当它对FlowDocument(我最终找到一个简单的解决办法)不起作用时。如果没有列表是否有一些智能感知技巧可以找到?我发现FlowDocument不支持数据绑定到集合真的很奇怪。它有一个显示在Intellisense中的DataContext属性,所以我想有一些绑定集合的方法。再加上支持单项绑定的事实让我确信我找不到合适的属性。难道每个人最终都会认真解决这个问题,还是我错过了一些明显的东西?

[编辑 - 上面的斜体文字是编辑] 我想我是一个初学者,我甚至不知道如何正确地提出这个问题。我有一半答案。我真正想知道的是,我现在意识到有两件事。

  1. 如何判断哪些控件可以绑定到集合(下面的答案是任何具有ItemsSource属性的控件)

  2. 在查看控件时,如何知道哪些属性是可以将数据绑定到的依赖项属性? (我确实意识到 - 刚才 - 当我去浏览器并查看每个属性时,摘要部分提到了哪些属性是依赖属性。有点费力地点击控件中的每个属性但是我可以忍受它,如果这是最容易找到的方法)。

3 个答案:

答案 0 :(得分:3)

从FrameworkElement派生的任何内容(据我所知,这是每个WPF控件)都支持数据绑定。但是,绑定集合需要特殊类型的绑定。您需要绑定到ItemsControl或使用具有ItemsSource DependencyProperty的控件

答案 1 :(得分:2)

所有WPF控件都支持几乎每个属性上的DataBinding。如果您发布具体示例,我们将能够更好地为您提供帮助。

答案 2 :(得分:2)

Data binding is supported on any DependencyProperty

  
      
  • 目标属性必须是依赖项属性。大多数UIElement属性是依赖项属性,除了只读属性之外,大多数依赖项属性默认支持数据绑定。 (只有DependencyObject类型可以定义依赖项属性,所有UIElements都派生自DependencyObject。)
  •   

对于RichTextboxFlowDocument,您可以通过。{4.0}的Run.Text依赖项属性实现绑定。但请记住RichTextBox

  

不支持将文本绑定到Run中包含的RichTextBox对象。在RichTextBox内编辑操作可能会导致绑定被清除。

您也可以绑定Document属性,但是,如果您需要包含的文本数据,这可能需要一些额外的逻辑。