0

クライアントでDomainDataSource(DDS)をフィルタリングするための最良の方法は何ですか?

私のDDSはWCFRiaサービスに接続し、いくつかのアイテムをダウンロードします。この情報の一部をさまざまなコントロールに表示したいと思います。たとえば、さまざまな値でフィルタリングされたDDSからのアイテムを表示するいくつかのItemsControls。サーバー上のコントロールとフィルターごとに新しいDDSを作成できることはわかっていますが、1回だけ実行したいと思います。

iValueConverterを使用してフィルタリングを実行してみました。例えば

ItemsSource="{Binding Data, ElementName=PermissionsByUserDS, Converter={StaticResource PermissionsByTypeConverter}, ConverterParameter={StaticResource GeneralPermissions}}"

これは、コントロールが最初にデータバインドされたときに正常に機能しますが、DDSがデータをリロードしたときに更新されません。コンバーターを削除すると、ItemsControlsは期待どおりに更新されますが、明らかにフィルタリングが取得されません。

DDSが更新されるたびに、コードでフィルタリングとバインドを手動で行うこともできますが、これが最善のアプローチかどうかはわかりません。

助言がありますか?

4

1 に答える 1

0

CollectionViewSourceを確認することをお勧めします。コレクションのフィルタリングが可能です。

http://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource.filter(VS.95).aspx

http://microsoft.realdolmenblogs.com/post/CollectionViewSource-in-Silverlight.aspx

http://www.mokosh.co.uk/post/Silverlight-3-CollectionViewSource.aspx

于 2009-11-29T03:58:29.417 に答える