(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; }
public string ProvinceCaptal { get; set; }
}
接下來,我們來添加一個啟用了Silverlight的WCF服務ProvinceCaptialService.svc檔案
ProviceCaptialService.svc.cs代碼如下:
using System.ServiceModel;
using System.ServiceModel.Activation;
//手動添加命名空間
[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class ProvinceCaptialService
[OperationContract]
public void DoWork()
// 在此處添加操作實作
return;
// 這裡我們添加一個GetProviceCaptial()方法
public List<Province> GetProviceCaptial()
return new List<Province> {
new Province {ProvinceName="安徽省",ProvinceCaptal="合肥市"},
new Province {ProvinceName="河南省",ProvinceCaptal="鄭州市"},
new Province {ProvinceName="江西省",ProvinceCaptal="南昌市"},
new Province {ProvinceName="湖北省",ProvinceCaptal="武漢市"},
new Province {ProvinceName="山西省",ProvinceCaptal="太原市"},
new Province {ProvinceName="浙江省",ProvinceCaptal="杭州市"},
new Province {ProvinceName="江蘇省",ProvinceCaptal="南京市"},
new Province {ProvinceName="四川省",ProvinceCaptal="成都市"}
};
做完以上工作後,一定要首先編譯我們的Chapter01.Web項目,目的是Silverlight應用程式能夠發現我們的WCF服務。
接下來就是在Silverlight應用程式中添加服務引用
OK,現在我們來在MainPage.xaml檔案中拖ComBox、Grid及TextBlock等控件來進行簡單的布局用來展示:
MainPage.xaml以及MainPage.xaml.cs檔案代碼如下:
<UserControl
x:Class="Chapter01.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400"
Loaded="UserControl_Loaded">
<Grid x:Name="LayoutRoot" Background="White">
<ComboBox Height="23" x:Name="cb_province"
DisplayMemberPath="ProvinceName" HorizontalAlignment="Left"
Margin="119,35,0,0" VerticalAlignment="Top" Width="120"
SelectionChanged="cb_province_SelectionChanged" />
<TextBlock Height="23" HorizontalAlignment="Left"
Margin="86,39,0,0" Name="textBlock1" Text="省份:" VerticalAlignment="Top"
/>
<Grid Height="100" HorizontalAlignment="Left"
Margin="41,68,0,0" Name="grid1" VerticalAlignment="Top" Width="200">
<Grid.ColumnDefinitions>
<ColumnDefinition
Width="0.5*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="省會城市:"
HorizontalAlignment="Center" VerticalAlignment="Center"/>
<TextBlock Grid.Column="1" Text="{Binding
ProvinceCaptal}" Foreground="Red" HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
</UserControl>
using
System;
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<GetProviceCaptialCompletedEventArgs>(client_GetProviceCaptialCompleted);
client.GetProviceCaptialAsync();
最終實作的效果如下:
下拉框發生變化時,内容也發生變化:
===========================================================================
如果覺得對您有幫助,微信掃一掃支援一下: