DataServiceCollection<T> クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
項目が追加または削除されたとき、あるいはリストが更新されたときに通知を提供する動的なエンティティ コレクションを表します。
generic <typename T>
public ref class DataServiceCollection : System::Collections::ObjectModel::ObservableCollection<T>
public class DataServiceCollection<T> : System.Collections.ObjectModel.ObservableCollection<T>
type DataServiceCollection<'T> = class
inherit ObservableCollection<'T>
Public Class DataServiceCollection(Of T)
Inherits ObservableCollection(Of T)
型パラメーター
- T
エンティティ型。
- 継承
例
次の例は、WPF で SalesOrders
ウィンドウを定義する XAML (Extensible Application Markup Language) の分離コード ページからの抜粋です。 ウィンドウが読み込まれると、 DataServiceCollection<T> 国/地域でフィルター処理された関連オブジェクトを持つ顧客を返すクエリの結果に基づいて が作成されます。 この結果は、WPF ウィンドウのルート レイアウト コントロールである DataContext の StackPanel プロパティにバインドされます。
using System;
using System.Data.Services.Client;
using System.Linq;
using System.Windows;
using NorthwindClient.Northwind;
namespace NorthwindClient
{
public partial class CustomerOrdersWpf : Window
{
private NorthwindEntities context;
private DataServiceCollection<Customer> trackedCustomers;
private const string customerCountry = "Germany";
private const string svcUri = "http://localhost:12345/Northwind.svc/";
public CustomerOrdersWpf()
{
//InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
try
{
// Initialize the context for the data service.
context = new NorthwindEntities(new Uri(svcUri));
// Create a LINQ query that returns customers with related orders.
var customerQuery = from cust in context.Customers.Expand("Orders")
where cust.Country == customerCountry
select cust;
// Create a new collection for binding based on the LINQ query.
trackedCustomers = new DataServiceCollection<Customer>(customerQuery);
// Bind the root StackPanel element to the collection;
// related object binding paths are defined in the XAML.
LayoutRoot.DataContext = trackedCustomers;
}
catch (DataServiceQueryException ex)
{
MessageBox.Show("The query could not be completed:\n" + ex.ToString());
}
catch (InvalidOperationException ex)
{
MessageBox.Show("The following error occurred:\n" + ex.ToString());
}
}
private void saveChangesButton_Click(object sender, RoutedEventArgs e)
{
// Save changes to the data service.
context.SaveChanges();
}
}
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Data
Imports System.Windows.Documents
Imports System.Windows.Input
Imports System.Windows.Media
Imports System.Windows.Media.Imaging
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Data.Services.Client
Imports NorthwindClient.Northwind
Partial Public Class CustomerOrdersWpf
Inherits Window
Private context As NorthwindEntities
Private trackedCustomers As DataServiceCollection(Of Customer)
Private Const customerCountry As String = "Germany"
Private Const svcUri As String = "http://localhost:12345/Northwind.svc/"
Private Sub Window_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
Try
' Initialize the context for the data service.
context = New NorthwindEntities(New Uri(svcUri))
' Create a LINQ query that returns customers with related orders.
Dim customerQuery = From cust In context.Customers.Expand("Orders") _
Where cust.Country = customerCountry _
Select cust
' Create a new collection for binding based on the LINQ query.
trackedCustomers = New DataServiceCollection(Of Customer)(customerQuery)
' Bind the root StackPanel element to the collection
' related object binding paths are defined in the XAML.
Me.LayoutRoot.DataContext = trackedCustomers
Catch ex As DataServiceQueryException
MessageBox.Show("The query could not be completed:\n" + ex.ToString())
Catch ex As InvalidOperationException
MessageBox.Show("The following error occurred:\n" + ex.ToString())
End Try
End Sub
Private Sub saveChangesButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
' Save changes to the data service.
context.SaveChanges()
End Sub
End Class
次の XAML では、前の例の WPF の SalesOrders
ウィンドウを定義します。
<Window x:Class="CustomerOrdersWpf"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Height="423" Width="679" Loaded="Window_Loaded">
<StackPanel Orientation="Vertical" Height="Auto" Name="LayoutRoot" Width="Auto">
<Label Content="Customer ID" Margin="20,0,0,0" />
<ComboBox Name="customerIDComboBox" DisplayMemberPath="CustomerID" ItemsSource="{Binding}"
IsSynchronizedWithCurrentItem="True" SelectedIndex="0" Height="23" Width="120"
HorizontalAlignment="Left" Margin="20,0,0,0" VerticalAlignment="Center" />
<ListView ItemsSource="{Binding Path=Orders}" Name="ordersDataGrid" Margin="34,46,34,50">
<ListView.View>
<GridView AllowsColumnReorder="False" ColumnHeaderToolTip="Line Items">
<GridViewColumn DisplayMemberBinding="{Binding Path=OrderID, Mode=OneWay}"
Header="Order ID" Width="50"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=OrderDate, Mode=TwoWay}"
Header="Order Date" Width="50"/>
<GridViewColumn DisplayMemberBinding="{Binding Path=Freight, Mode=TwoWay}"
Header="Freight Cost" Width="50"/>
</GridView>
</ListView.View>
</ListView>
<Button Name="saveChangesButton" Content="Save Changes" Click="saveChangesButton_Click"
Width="80" Height="30" Margin="450,0,0,0"/>
</StackPanel>
</Window>
注釈
WCF Data Servicesは、 クラスをDataServiceCollection<T>提供し、クライアント アプリケーションのコントロールへのデータのバインドをサポートします。 このクラスは、 インターフェイスをObservableCollection<T>実装INotifyCollectionChangedする クラスから継承され、Windows Presentation Foundation (WPF) および Silverlight ベースのアプリケーションのプライマリ データ バインディング メカニズムです。
ObservableCollection<T> インターフェイスを実装する任意のコレクションを使用して、IEnumerable<T> バインディング コレクションを読み込むことができます。 バインディング コレクションに読み込まれた項目は、INotifyPropertyChanged インターフェイスを実装する必要があります。 詳しくは、「コントロールへのデータのバインド」をご覧ください。
コンストラクター
プロパティ
Continuation |
ページングされた結果の次のセットを返すために使用される連結オブジェクトを取得します。 |
Count |
Collection<T> に実際に含まれる要素の数を取得します。 (継承元 Collection<T>) |
Item[Int32] |
指定したインデックスにある要素を取得または設定します。 (継承元 Collection<T>) |
Items |
IList<T> をラップする Collection<T> ラッパーを取得します。 (継承元 Collection<T>) |
メソッド
Add(T) |
Collection<T> の末尾にオブジェクトを追加します。 (継承元 Collection<T>) |
BlockReentrancy() |
このコレクションを変更するための再入試行を禁止します。 (継承元 ObservableCollection<T>) |
CheckReentrancy() |
このコレクションを変更するための再入試行をチェックします。 (継承元 ObservableCollection<T>) |
Clear() |
Collection<T> からすべての要素を削除します。 (継承元 Collection<T>) |
Clear(Boolean) |
コレクションからすべての項目を削除し、必要に応じて DataServiceContext からすべての項目をデタッチします。 |
ClearItems() |
コレクションからすべての項目を削除します。 (継承元 ObservableCollection<T>) |
Contains(T) |
ある要素が Collection<T> 内に存在するかどうかを判断します。 (継承元 Collection<T>) |
CopyTo(T[], Int32) |
Collection<T> 全体を互換性のある 1 次元の Array にコピーします。コピー操作は、コピー先の配列の指定したインデックスから始まります。 (継承元 Collection<T>) |
Detach() |
DataServiceContext によるコレクション内のすべての項目の追跡を無効にします。 |
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetEnumerator() |
Collection<T> を反復処理する列挙子を返します。 (継承元 Collection<T>) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
IndexOf(T) |
Collection<T> 全体から指定したオブジェクトを検索し、最初に見つかったオブジェクトのインデックス (0 から始まる) を返します。 (継承元 Collection<T>) |
Insert(Int32, T) |
Collection<T> 内の指定したインデックスの位置に要素を挿入します。 (継承元 Collection<T>) |
InsertItem(Int32, T) |
指定された項目を、コレクション内の指定されたインデックスの位置に追加します。 |
Load(IEnumerable<T>) |
エンティティ オブジェクトのコレクションをコレクションに読み込みます。 |
Load(T) |
1 つのエンティティ オブジェクトをコレクションに読み込みます。 |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
Move(Int32, Int32) |
指定されたインデックス位置にある項目をコレクション内の別の位置に移動します。 (継承元 ObservableCollection<T>) |
MoveItem(Int32, Int32) |
指定されたインデックス位置にある項目をコレクション内の別の位置に移動します。 (継承元 ObservableCollection<T>) |
OnCollectionChanged(NotifyCollectionChangedEventArgs) |
指定された引数を使用して、CollectionChanged イベントを発生させます。 (継承元 ObservableCollection<T>) |
OnPropertyChanged(PropertyChangedEventArgs) |
指定された引数を使用して、PropertyChanged イベントを発生させます。 (継承元 ObservableCollection<T>) |
Remove(T) |
特定のオブジェクトが Collection<T> 内にあるときに、最初に出現したものを削除します。 (継承元 Collection<T>) |
RemoveAt(Int32) |
Collection<T> の指定したインデックスにある要素を削除します。 (継承元 Collection<T>) |
RemoveItem(Int32) |
コレクション内の指定したインデックス位置にある項目を削除します。 (継承元 ObservableCollection<T>) |
SetItem(Int32, T) |
指定したインデックス位置にある要素を置き換えます。 (継承元 ObservableCollection<T>) |
ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
イベント
CollectionChanged |
項目が追加、削除、または移動されたとき、またはリスト全体が更新されたときに発生します。 (継承元 ObservableCollection<T>) |
PropertyChanged |
プロパティ値が変更するときに発生します。 (継承元 ObservableCollection<T>) |
明示的なインターフェイスの実装
拡張メソッド
適用対象
こちらもご覧ください
.NET