| Bernhard's profileBernhard Grojer - BlogPhotosBlogLists | Help |
|
|
April 08 Silverlight: DataBinding zu WCF Service - Teil 1/2
[ServiceContract]
public interface ICustomerService
{
[OperationContract]
List<Customer> GetCustomers();
[OperationContract]
bool SaveCustomers(Dictionary<Customer, string> Customers);
}
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class CustomerService : ICustomerService
{
#region ICustomerService Members
public List<Customer> GetCustomers()
{
using (var DB = new NorthwindDataContext())
{
var query = from c in DB.Customers
select c;
return query.ToList();
}
}
public bool SaveCustomers(Dictionary<Customer, string> Customers)
{
TODO: Implement Save
return true;
}
#endregion
}Damit dieses Service verfügbar ist muss noch die passende web.config (Service Configuration Editor) erstellt werden (passende .svc Datei nicht vergessen bei WCF Service unter WAS/IIS) Damit die Daten aber tatsächlich nachgeladen werden können brauchen wir zuerst einen Proxy den wir über “Add Service Reference” erzeugen lassen. (Meta-Daten müssen vom Service aktiviert/bereitgestellt werden). Sobald der CustomerServiceCleint (generierter Code) nun verfügbar ist können wir eine passende Klasse erzeugen und das Service benutzen. public class CustomerDataSource
{
public CustomerDataSource()
{
LoadCustomers();
}
private void LoadCustomers()
{
CustomerServiceClient client = new CustomerServiceClient();
client.GetCustomersCompleted += (sender, e) =>
{
foreach (var c in e.Result)
{
_Customers.Add(c);
}
};
client.GetCustomersAsync();
}
ObservableCollection<Customer> _Customers = new ObservableCollection<Customer>();
public ObservableCollection<Customer> Customers
{
get {
return _Customers;
}
}
}
<UserControl xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightConsumeWCF.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:SilverlightConsumeWCF">
<UserControl.Resources>
<local:CustomerDataSource x:Key="Customers" />
</UserControl.Resources>
<Grid x:Name="LayoutRoot" Background="White">
<data:DataGrid ItemsSource="{Binding Path=Customers, Source={StaticResource Customers}}">
</data:DataGrid>
</Grid>
</UserControl>Download: SilverlightConsumeWCF 08042009.zip Im Teil 2 wird noch editieren der Customer-Objekte ermöglicht. Das Service stellt die entsprechende Methodensignatur bereits bereit. TrackbacksThe trackback URL for this entry is: http://bgrojer.spaces.live.com/blog/cns!9D87CECB1EA8118F!591.trak Weblogs that reference this entry
|
|
|