私が書いたフィルタを使用してcollectionviewsourceをフィルタリングしたいのですが、どのようにフィルタを適用することができないのですか?VBでwpf collectionviewsourceをフィルタリングしますか?
<Grid.Resources>
<CollectionViewSource x:Key="myCollectionView"
Source="{Binding Path=Query4, Source={x:Static Application.Current}}">
<CollectionViewSource.SortDescriptions>
<scm:SortDescription PropertyName="ContactID"
Direction="Descending"/>
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Grid.Resources>
私のようなフィルタを実装している:ここで
は私のコレクションビューのソースであるPrivate Sub WorkerFilter(ByVal sender As Object, ByVal e As FilterEventArgs)
Dim value As Object = CType(e.Item, System.Data.DataRow)("StaffSection")
If (Not value Is Nothing) And (Not value Is DBNull.Value) Then
If (value = "Builder") Or (value = "Office Staff") Then
e.Accepted = True
Else
e.Accepted = False
End If
End If
End Sub
だから私は、負荷のフィルターでろ過しCollectionViewSourceを取得できますか?あなたがコーディングするのが全く新しいので、私が必要とするすべてのhteコードを与えてください。
はみんなありがとう
EDIT:記録のために、
<CollectionViewSource x:Key="myCollectionView" Filter="WorkerFilter" ... />
は私にエラーを与える:
Failed object initialization (ISupportInitialize.EndInit). 'System.Windows.Data.BindingListCollectionView' view does not support filtering. Error at object 'myCollectionView'
ありがとうございますが、私が試してみると、エラーが発生しました: オブジェクトの初期化に失敗しました(ISupportInitialize.EndInit)。 'System.Windows.Data.BindingListCollectionView'ビューはフィルタリングをサポートしていません。オブジェクト 'myCollectionView'のエラー –
CollectionViewのソースは、BindingListに基づいているため、フィルタリングをサポートしていません。なぜBindingListがフィルタリングをサポートしていないのか分かりませんが、普通の古いリストはそうしています。 BindingListではなく、リストにソースを変更してみてください。 –
Uuuhhh ....申し訳ありませんが、私はそれについてどうやって行くのか分かりません。私は "Source =" {Binding Path = Query4、Source = {x:Static Application.Current}} "が私のバインディングリストであると仮定します。これは、Query4という名前のデータテーブルを参照します。どのように私はこれを普通のリストにすることができますか? ありがとう –