今天是本人初次接触银光,以前只听说银光何其的牛叉,却一直没有机会学习。今天恰好有时间,也趁公司机子上装的是VS2010。说到这个,我就来气,我的dell 1420装不上VS2010。今天呢,本人就来个银光的数据CURD例子。别人爱说CURD,我也用这个,初次看见这个我还懵了一下,什么事CURD,原来是Create,Update,Read,Delete。废话不多说,来个现实的例子。先新建一个Silverlight Application。

选择Silverlight Application。ok项目建好了,我们再建一个WCF Service Application以及一个Entity Data Model,如下

我们先来写这个WCF服务,代码如下

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.Serialization;
  5. using System.ServiceModel;
  6. using System.ServiceModel.Web;
  7. using System.Text;
  8. using System.Data;
  9. using Model;
  10. namespace DataProvider
  11. {
  12. // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
  13. public class Service1 : IService1
  14. {
  15. DataEntities dataEntities = new DataEntities();
  16. /// <summary>
  17. /// 获取实体
  18. /// </summary>
  19. /// <param name="value">主键</param>
  20. /// <returns></returns>
  21. public List<SS_ORGA> GetData()
  22. {
  23. List<SS_ORGA> ssOrgaList = dataEntities.SS_ORGA.ToList();
  24. return ssOrgaList;
  25. }
  26. /// <summary>
  27. /// 删除数据
  28. /// </summary>
  29. /// <param name="id">主键</param>
  30. public void DeleteData(string id)
  31. {
  32. SS_ORGA ssOrga = dataEntities.SS_ORGA.SingleOrDefault(s => s.C_ORGA_ID == id);
  33. dataEntities.SS_ORGA.DeleteObject(ssOrga);
  34. dataEntities.SaveChanges();
  35. }
  36. /// <summary>
  37. /// 修改数据
  38. /// </summary>
  39. /// <param name="ssOrga">要修改的实体对象</param>
  40. public void ModifyData(SS_ORGA ssOrga)
  41. {
  42. dataEntities.ApplyCurrentValues("SS_ORGA", ssOrga);
  43. dataEntities.SaveChanges();
  44. }
  45. /// <summary>
  46. /// 添加数据
  47. /// </summary>
  48. /// <param name="ssOrga">要添加的实体对象</param>
  49. public void AddData(SS_ORGA ssOrga)
  50. {
  51. dataEntities.AddToSS_ORGA(ssOrga);
  52. dataEntities.SaveChanges();
  53. }
  54. }
  55. }

ok,WCF写完了,我们再来将它引用到Silverlight项目中。在DataManage项目的References上点击右键,选择Add Service Reference。弹出以下界面,我们点击Discover,找到了我们刚才写的WCF服务,我们把NameSpace改为MyService。

引用完了,我们把WCF服务发布到IIS服务器,这里我们用的端口是1933。这个发布我就不多说了,大家都会。看看Silverlight服务引用客户端配置,如下

  1. <configuration>
  2. <system.serviceModel>
  3. <bindings>
  4. <basicHttpBinding>
  5. <binding name="BasicHttpBinding_IService1" maxBufferSize="2147483647"
  6. maxReceivedMessageSize="2147483647">
  7. <security mode="None" />
  8. </binding>
  9. </basicHttpBinding>
  10. </bindings>
  11. <client>
  12. <endpoint address="http://localhost:1993/Service1.svc" binding="basicHttpBinding"
  13. bindingConfiguration="BasicHttpBinding_IService1" contract="MyService.IService1"
  14. name="BasicHttpBinding_IService1" />
  15. </client>
  16. </system.serviceModel>
  17. </configuration>

ok,我们再看看,WPF端的调用,这里我们只做一个例子,就做个删除吧。先看看前台代码

  1. <UserControl x:Class="DataManage.MainPage"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  6. mc:Ignorable="d"
  7. d:DesignHeight="338" d:DesignWidth="828" xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls" xmlns:dataInput="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.Input" xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" Loaded="UserControl_Loaded">
  8. <Grid x:Name="LayoutRoot" Background="White" Width="665">
  9. <data:DataGrid  Height="200" AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="65,62,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="524" Background="#FFA0AC9E" Foreground="#FF1010FA">
  10. <data:DataGrid.Columns>
  11. <data:DataGridTemplateColumn Header="请选择" >
  12. <data:DataGridTemplateColumn.CellTemplate>
  13. <DataTemplate>
  14. <RadioButton Content=""  Height="16" HorizontalAlignment="Center" Margin="0,0,0,0" Name="radioButton1" VerticalAlignment="Center" />
  15. </DataTemplate>
  16. </data:DataGridTemplateColumn.CellTemplate>
  17. </data:DataGridTemplateColumn>
  18. <data:DataGridTextColumn Header="部门Id" Binding="{Binding C_ORGA_ID}"></data:DataGridTextColumn>
  19. <data:DataGridTextColumn Header="部门名称" Binding="{Binding C_ORGA_NM}"></data:DataGridTextColumn>
  20. <data:DataGridTextColumn Header="部门类型" Binding="{Binding C_ORGA_TP}"></data:DataGridTextColumn>
  21. <data:DataGridTextColumn Header="电话" Binding="{Binding C_PHONE}"></data:DataGridTextColumn>
  22. <data:DataGridTextColumn Header="部门描述" Binding="{Binding C_ORGA_DESC}"></data:DataGridTextColumn>
  23. <data:DataGridTextColumn Header="电子邮箱" Binding="{Binding C_EMAIL}"></data:DataGridTextColumn>
  24. </data:DataGrid.Columns>
  25. </data:DataGrid>
  26. <Button Content="删除" Height="23" HorizontalAlignment="Left" Margin="446,33,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
  27. </Grid>
  28. </UserControl>

再看看后台代码

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Windows;
  6. using System.Windows.Controls;
  7. using System.Windows.Documents;
  8. using System.Windows.Input;
  9. using System.Windows.Media;
  10. using System.Windows.Media.Animation;
  11. using System.Windows.Shapes;
  12. using System.Net.Browser;
  13. namespace DataManage
  14. {
  15. using MyService;
  16. public partial class MainPage : UserControl
  17. {
  18. public MainPage()
  19. {
  20. InitializeComponent();
  21. /*404 not found 加入以下代码*/
  22. bool registerResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
  23. bool httpsResult = WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp);
  24. }
  25. /// <summary>
  26. /// 删除数据
  27. /// </summary>
  28. /// <param name="sender"></param>
  29. /// <param name="e"></param>
  30. private void button1_Click(object sender, RoutedEventArgs e)
  31. {
  32. MyService.Service1Client client1 = new Service1Client();
  33. client1.DeleteDataCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(ClientDeleteDataCompleted);
  34. client1.DeleteDataAsync(((SS_ORGA)dataGrid1.SelectedItem).C_ORGA_ID);
  35. UserControl_Loaded(sender,e);
  36. }
  37. private void UserControl_Loaded(object sender, RoutedEventArgs e)
  38. {
  39. Brush br=new SolidColorBrush(Color.FromArgb(10,255,0,0));
  40. dataGrid1.RowBackground = br;
  41. dataGrid1.SelectionMode = DataGridSelectionMode.Single;
  42. MyService.Service1Client client1 = new Service1Client();
  43. client1.GetDataCompleted += new EventHandler<GetDataCompletedEventArgs>(ClientGetDataCompleted);
  44. client1.GetDataAsync();
  45. }
  46. void ClientGetDataCompleted(object sender, GetDataCompletedEventArgs e)
  47. {
  48. if (e.Error == null)
  49. {
  50. this.dataGrid1.ItemsSource = e.Result;
  51. }
  52. else
  53. {
  54. MessageBox.Show(e.Error.Message);
  55. }
  56. }
  57. void ClientDeleteDataCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
  58. {
  59. if (e.Error == null)
  60. {
  61. MessageBox.Show("删除成功", "提示", MessageBoxButton.OK);
  62. }
  63. else
  64. {
  65. MessageBox.Show("删除失败", "提示", MessageBoxButton.OK);
  66. }
  67. }
  68. }
  69. }

看看运行效果

点击删除,如下

本文转自 BruceAndLee 51CTO博客,原文链接:http://blog.51cto.com/leelei/382404,如需转载请自行联系原作者

SilverLight 初探一相关推荐

  1. SilverLight学习笔记--Silverlight之数据绑定初探

    数据绑定(Data Binding)是用户界面UI和业务对象或其它数据提供者(data provider)的连接.用户界面对象称为目标,数据提供者成为数据源.   数据绑定帮助隔离应用程序的用户界面层 ...

  2. 抓取网页中的Silverlight数据初探

    1.在浏览器中,打开Silverlight页面,点击右键,查看页面源代码: 2. 在html源代码中搜索"xap",很快就能定位出xap的位置.例如:<param name= ...

  3. Silverlight Spy初探

    突然接手别人写的一个silverlight的项目,需要尽快熟悉它的功能,但是又很多页面元素不能很快的找到,于是Silverlight Spy就出世了,网上下载个最新版本[试用],如下: 1.主界面: ...

  4. 分享Silverlight/WPF/Windows Phone一周学习导读(1月17日-1月23日)

    上周微软Silverlight团队发布"微软发布Silverlight Native Extensions 1.0 - 扩展OOB应用功能",对于Silverlight开发人员而言 ...

  5. 分享Silverlight/WPF/Windows Phone一周学习导读(3月14日-3月19日)

    用了近一周的Windows Phone 7,作为长期使用iPhone的用户,刚使用WP7的确让人感觉挺生硬的,其中不乏先入为主的理由. 尽管如此,我还是非常喜欢Windows Phone 7个性界面, ...

  6. 【CSS3初探之变形与动画】令人惊叹的CSS3

    前言 这个标题比较狗血了,我一直知道CSS3可以做很多事情,但是我昨天看到一个人用CSS3华丽的画了一个太极八卦! 若是这个还可以接受,那么我今天就看见一个人用CSS3画了一个叮当猫!!!我突然就在想 ...

  7. 分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(4月2日-4月8日)

    分享Silverlight/WPF/Windows Phone/HTML5一周学习导读(4月2日-4月8日) 本周Silverlight学习资源更新 Microsoft Silverlight 4从入 ...

  8. Silverlight/Windows8/WPF/WP7/HTML5周学习导读(10月15日-10月21日)

    Silverlight/Windows8/WPF/WP7/HTML5周学习导读(10月15日-10月21日) 本周Silverlight学习资源更新 Silverlight + DomainServi ...

  9. 分享Silverlight/WPF/Windows Phone一周学习导读(11月14日-11月20日)

    分享Silverlight/WPF/Windows Phone一周学习导读(11月14日-11月20日) 本周Silverlight学习资源更新 Silverlight App.xaml用途 Jaso ...

最新文章

  1. Visual Studio 2015 速递(4)——高级特性之移动开发
  2. FaceNet--Google的人脸识别
  3. 动手造轮子:实现一个简单的基于 Console 的日志输出
  4. html网页如何获取后台数据库的数据(html + ajax + php + mysql)
  5. FastText原理总结
  6. 20172307 2017-2018-2 《程序设计与数据结构》实验5报告
  7. 如何跨越线程调用窗体控件?(1)
  8. java jobdetail_Spring创建JobDetail的两种方式
  9. which与whereis区别
  10. 使用独立PID namespace防止误杀进程
  11. BZOJ1938: [CROATIAN2010] ALADIN
  12. c语言中stdio什么意思6,求助,return,stdio是什么意思,在C语言中又是什么意思
  13. 【人工智能】非线性分类器(QDU)
  14. JQuery checkbox check/uncheck
  15. 浏览器 文本转语音播放 Demo [SpeechSynthesis]
  16. ps基础学习:渐变工具制作倒影效果
  17. 达观电网故障知识图谱,三大功能全面提升电网故障处置效率
  18. Fujikure-FSM100P+特种光纤熔接机的那些事——第一番
  19. 渗透tools之POC-bomber
  20. 记华为AP3010DN-AGN胖转瘦过程 AP版本升级

热门文章

  1. jquery只获取自身文本节点,不获取子元素的
  2. vue中定义多重样式
  3. android本地图片,Android中ImageView实现选择本地图片并显示功能
  4. Mysql更新计数器_MySQL实现计数器如何在高并发场景下更新并保持数据正确性
  5. mysql数据索引失效_MySQL索引失效的几种情况
  6. 程序员值得思考的问题
  7. [Ext JS ]3.4 数字输入框 numberfield
  8. Activemq Jms 简单示例
  9. 串口接收到的字符型数据如何转化成数字
  10. cc1101初始化c语言程序,cc1101无线模块的程序及使用介绍