4

私は私の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'

どうしたの?どうすればこれを達成できますか?

4

2 に答える 2

4

解決します!...この上:

      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)
于 2010-10-27T13:10:23.767 に答える
1

CollectionViewSource自動的に「バインド」するためにa をバインドする必要はありません。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

于 2010-10-27T09:47:39.333 に答える