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
다음은 이전 예제에 대한 WPF의 SalesOrders
창을 정의하는 XAML입니다.
<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) |
단일 엔터티 개체를 컬렉션에 로드합니다. |
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