(1)、打开VisualStudio 2010,新建一个Silverlight应用程序项目,如下图:
选择Silverlight应用程序,如图
点击确定按钮,选择在新网站中承载Silverlight应用程序
Visual Studio 2010为我们创建好的界面如下:
(2)、接下来我们就来通过添加代码实现我们的第一个Silverlight应用程序。
首先在用来承载Silverlight应用程序的Chapter01.Web中添加一个DataContract(数据契约)类,我们命名为:ProvinceCaptial
Province.cs代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web; //需要手动添加的命名空间 using System.Runtime.Serialization; namespace Chapter01.Web { [DataContract] public class Province { [DataMember] public string ProvinceName { get; set; } [DataMember] public string ProvinceCaptal { get; set; } } }
接下来,我们来添加一个启用了Silverlight的WCF服务ProvinceCaptialService.svc文件
ProviceCaptialService.svc.cs代码如下:
using System; using System.Linq; using System.Runtime.Serialization; using System.ServiceModel; using System.ServiceModel.Activation; //手动添加命名空间 using System.Collections.Generic; namespace Chapter01.Web { [ServiceContract(Namespace = "")] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] public class ProvinceCaptialService { [OperationContract] public void DoWork() { // 在此处添加操作实现 return; } // 这里我们添加一个GetProviceCaptial()方法 [OperationContract] public List
做完以上工作后,一定要首先编译我们的Chapter01.Web项目,目的是Silverlight应用程序能够发现我们的WCF服务。
接下来就是在Silverlight应用程序中添加服务引用
OK,现在我们来在MainPage.xaml文件中拖ComBox、Grid及TextBlock等控件来进行简单的布局用来展示:
MainPage.xaml以及MainPage.xaml.cs文件代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; //添加服务引用所在的命名空间 using Chapter01.ProvinceCaptialServiceReference; namespace Chapter01 { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } private void cb_province_SelectionChanged(object sender, SelectionChangedEventArgs e) { //设置Grid控件数据源 this.grid1.DataContext = (sender as ComboBox).SelectedItem as ProvinceCaptialServiceReference.Province; } void client_GetProviceCaptialCompleted(object sender, GetProviceCaptialCompletedEventArgs e) { //获取结果的List集合绑定到Combox控件上 this.cb_province.ItemsSource = e.Result; } private void UserControl_Loaded(object sender, RoutedEventArgs e) { ProvinceCaptialServiceClient client = new ProvinceCaptialServiceClient(); client.GetProviceCaptialCompleted += new EventHandler
最终实现的效果如下:
下拉框发生变化时,内容也发生变化:
===========================================================================
如果觉得对您有帮助,微信扫一扫支持一下: