DataGrid for WPF/Silverlight
WCF RIA Services のデータ連結 (Silverlight のみ)
製品の概要 > DataGrid の機能 > データ連結 > WCF RIA Services のデータ連結 (Silverlight のみ)

DataGrid for Silverlight の C1DataGrid コントロールは、WCF RIA Services の DomainDataSoure に直接連結できます。XAML でコードを記述することなくこれを行う方法が2つあります。DomainDataSource に直接連結するか(フィルタ処理の一部の機能を使用できなくなります)、または Adaptor クラスを使ってグリッドを連結します。

次のような XAML マークアップを使用すると、グリッドを DomainDataSource に直接連結できます。

XAML
コードのコピー
<ria:DomainDataSource x:Name="_myDataSource" QueryName="GetProducts" PageSize="8">
    <ria:DomainDataSource.DomainContext>
        <local:NorthwindContext/>
    </ria:DomainDataSource.DomainContext>
</ria:DomainDataSource>
<c1:C1DataGrid x:Name="_dataGrid" ItemsSource="{Binding Data, ElementName=_myDataSource}">

この方法でもグリッドを連結して使用できますが、RIA サービスは標準の CollectionView 以外のフィルタ処理方法を使用するので、C1DataGrid の組み込みフィルタ処理機能は使用できません。

すべての機能を維持するには、RIA サービスがフィルタ処理を実行できるように、フィルタ処理情報を "変換" するクラスを追加する必要があります。具体的には、C1RiaAdapter クラスを使用します。このクラスは、RIA で C1DataGrid のフィルタ処理を実行するために必要な変換を実行します。

次のような XAML マークアップを使用します。

DomainDataSource への間接連結(Adapter を使用した連結)

XAML
コードのコピー
<adapter:C1RiaAdapter x:Name="_adapter" DataGrid="{Binding ElementName=_dataGrid}">
    <ria:DomainDataSource x:Name="_myDataSource" QueryName="GetProducts" PageSize="8">
        <ria:DomainDataSource.DomainContext>
            <local:NorthwindContext/>
        </ria:DomainDataSource.DomainContext>
    </ria:DomainDataSource>
</adapter:C1RiaAdapter>
<c1:C1DataGrid x:Name="_dataGrid" ItemsSource="{Binding Data, ElementName=_adapter}">

この方法でグリッドを連結すると、初期設定のままでフィルタ処理を使用できます。もちろん、フィルタ処理のサポートを必要としない場合は、C1RiaAdapter を使用することなく直接グリッドを連結できます。

例については、「WCF RIA Services のデータソースへのグリッドの連結」を参照してください。

メモ:このトピックの内容は、ComponentOne for Silverlight にのみ適用されます。