CollectionViewSource源属性上的集合绑定

时间:2010-10-27 09:04:36

标签: wpf binding wpfdatagrid collectionviewsource

我的CollectionViewSource ItemsSource DataGrid。在Window.Resources我有这个定义:

<CollectionViewSource x:Key="ItemsPoolCollectionView"  
     Source="{Binding Path=MyObservableCollection, Mode=OneWay}" />

现在,我想从代码中生成相同的定义,所以我已经这样做了:

Dim _cvs as CollectionViewSource = New CollectionViewSource
Dim bindSource = New Binding() With {
        .Path = New PropertyPath("MyObservableCollection"),
        .Mode = BindingMode.OneWay }
_cvs.SetValue(CollectionViewSource.SourceProperty, bindSource)

但我在最后一句话中出现了这个错误:

'System.Windows.Data.Binding' is not a valid value for property 'Source'

怎么了?我怎么能做到这一点?

2 个答案:

答案 0 :(得分:3)

我解决了! ......这样:

      Dim _cvs as CollectionViewSource = New CollectionViewSource
      Dim bindSource = New Binding() With {
              .Source = Me.DataContext
              .Path = New PropertyPath("MyObservableCollection"),
              .Mode = BindingMode.OneWay }
      BindingOperations.SetBinding(cvs, CollectionViewSource.SourceProperty, bindSource)

答案 1 :(得分:1)

您无需绑定CollectionViewSource以使其自动“绑定”;只需直接设置Source属性的值:

Dim _cvs as CollectionViewSource = New CollectionViewSource
_cvs.Source = Me.MyObservableCollection

(抱歉我生锈的VB.net)

有关详细信息,请参阅以下论坛帖子: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/f44df11b-dfa8-4173-bbc8-051875fce4cc