天天看點

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

(1)、打開VisualStudio 2010,建立一個Silverlight應用程式項目,如下圖:

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

選擇Silverlight應用程式,如圖

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

點選确定按鈕,選擇在新網站中承載Silverlight應用程式

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

Visual Studio 2010為我們建立好的界面如下:

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

(2)、接下來我們就來通過添加代碼實作我們的第一個Silverlight應用程式。

      首先在用來承載Silverlight應用程式的Chapter01.Web中添加一個DataContract(資料契約)類,我們命名為:ProvinceCaptial

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式
一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式
一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式
一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

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檔案

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式
一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

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服務。

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

接下來就是在Silverlight應用程式中添加服務引用

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式
一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

OK,現在我們來在MainPage.xaml檔案中拖ComBox、Grid及TextBlock等控件來進行簡單的布局用來展示:

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式
一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

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();

最終實作的效果如下:

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

下拉框發生變化時,内容也發生變化:

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

===========================================================================

如果覺得對您有幫助,微信掃一掃支援一下:

一、利用Visual Studio 2010建立第一個基于服務和資料驅動的Silverlight應用程式

繼續閱讀