中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

在兩個(gè)Silverlight應(yīng)用間應(yīng)用間數(shù)據(jù)通信DEMO(包括與Flash通信)

因?yàn)镾ilverlight可以訪問(wèn)HTML中的DOM元素以及調(diào)用HTML頁(yè)面中的JS方法,并且可以將自身的方法"暴露"給HTML頁(yè)面中的JS方法(通過(guò)[ScriptableMember]),所以我們可以利用這一特點(diǎn)來(lái)實(shí)現(xiàn)兩個(gè)Silverlight應(yīng)用程序之間的數(shù)據(jù)通信。為了直觀起見(jiàn),本人做了這個(gè)DEMO,希望能夠?qū)Υ蠹以诶斫馍嫌兴鶐椭?/p>

本DEMO的工作流程如下:

Silverlight 1 調(diào)用HTML中的JS方法,而該方法會(huì)去調(diào)用Silverlight 2中“暴露”的方法來(lái)顯示選中的數(shù)據(jù)。

請(qǐng)大家先看一下這個(gè)DEMO的運(yùn)行效果,如下圖所示:

在上圖中分別有兩個(gè)Silverlight應(yīng)用,一個(gè)是雇員列表,一個(gè)是詳細(xì)信息。其中的雇員列表是我以前在園子里發(fā)表過(guò)的一遍文章中提到的DEMO,這里只是為了便于演示而簡(jiǎn)單的加以改造,其雇員類信息如下:

[ScriptableType]
public class EmployeeInfo
{
    
/// <summary>
    
/// 雇員編號(hào)
    
/// </summary>
    [ScriptableMember]
    
public int EmployeeNo { getset; }
    
/// <summary>
    
/// 雇員名稱
    
/// </summary>
    [ScriptableMember]
    
public string EmployeeName { getset; }
    
/// <summary>
    
/// 地址
    
/// </summary>
    [ScriptableMember]
    
public string Address { getset; }
}

  上面的ScriptableType,ScriptableMember屬性綁寫(xiě)是為了讓html中的腳本代碼可以訪問(wèn)(即可見(jiàn))。

而下面的代碼則是為了定義一個(gè)“腳本對(duì)象類”及其事件處理(包括參數(shù))。

/// <summary>
/// 雇員事件參數(shù)(用于完成與js綁定事件參數(shù))
/// </summary>
[ScriptableType]
public class EmployeeInfoEventArgs : EventArgs
{
    [ScriptableMember]
    
public EmployeeInfo employeeInfo { getset; }
}

/// <summary>
/// 要注冊(cè)并在頁(yè)面中使用的js調(diào)用腳本對(duì)象
/// </summary>
[ScriptableType]
public class JavaScriptableObject
{
    
/// <summary>
    
/// js捆綁的事件處理器
    
/// </summary>
    [ScriptableMember]
    
public event EventHandler<EmployeeInfoEventArgs> SelectEmployeeInfo;

    
public void OnSelectEmployeeInfo(EmployeeInfo employeeinfo)
    {
        
if (SelectEmployeeInfo != null)
        {
            SelectEmployeeInfo(
thisnew EmployeeInfoEventArgs()
            {
                employeeInfo 
= employeeinfo
            });
        }
    }
}

有了數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu),我們可以在應(yīng)用程序中給列表控件綁定數(shù)據(jù)源了,如下:

//這里必須聲明是public,否則js調(diào)用該方法時(shí)會(huì)報(bào)錯(cuò)
[ScriptableMember]
public void LoadData(int count)
{
    
//加載指定數(shù)據(jù)的雇員信息
    EmployeeList.ItemsSource = new EmployeeManager().GetEmployeeList(count);
}

到這里,基本上DEMO中的主要內(nèi)容就介紹完了。

下面再給大家演示一個(gè)Silverlight與FLASH進(jìn)行數(shù)據(jù)通信 的例子,其實(shí)現(xiàn)的功能如下:

在Silverlight應(yīng)用中拖動(dòng)一張圖片,在右側(cè)的FLASH區(qū)域中相應(yīng)的FLASH對(duì)象跟著被“移動(dòng)”,其效果如下圖所示:

 
 
 

其實(shí)這個(gè)DEMO最初的原型出自微軟件的黃繼佳,我是在一次SILVERLIGHT培訓(xùn)中看到他這個(gè)演示,當(dāng)時(shí)我想實(shí)現(xiàn)原理應(yīng)該與本文所提到的大同小異,后來(lái)被證實(shí)現(xiàn)確實(shí)如此。當(dāng)然他的演示中實(shí)現(xiàn)的JS代碼很簡(jiǎn)單,完全就是用純JS來(lái)實(shí)現(xiàn)即可。我這里并未完全使用了他的模型代碼。因?yàn)樯厦嫠f(shuō)的是在CS代碼中進(jìn)行事件的綁定及其相關(guān)操作,所以我還是照上面所提供的思路重新寫(xiě)了這個(gè)DEMO,實(shí)現(xiàn)的效果與黃紀(jì)佳的原型基本相似。因?yàn)槠鹨?jiàn),這里就不多做贅述了,大家下載代碼后一看便知(SLImage.xaml.cs和SLtoFlash.htm文件)。

好的,今天的內(nèi)容就先到這里了。

NET技術(shù)在兩個(gè)Silverlight應(yīng)用間應(yīng)用間數(shù)據(jù)通信DEMO(包括與Flash通信),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 精品一区二区在线观看 | 一区二区三区高清 | 在线国产一区 | 亚洲精品自拍 | 国产精品久久久久久久久久 | 亚洲成人播放器 | 日韩美女一区二区三区在线观看 | 精品国产91乱码一区二区三区 | av激情影院 | 一级少妇女片 | 罗宾被扒开腿做同人网站 | 青青草视频网 | 国产精品久久久精品 | 日韩成人一区 | 日本又色又爽又黄又高潮 | 久久久亚洲 | 人人性人人性碰国产 | 精品一区视频 | 亚洲国产成人久久综合一区,久久久国产99 | 日韩三级 | 亚洲精品视频在线观看免费 | 欧美一级久久 | 欧美日韩在线播放 | 精品区一区二区 | 热久久性 | 欧美不卡| 日日操夜夜操视频 | 91黄色片免费看 | 国内精品久久精品 | 99这里只有精品视频 | 看片91| 狠狠夜夜 | 成人av一区二区三区 | 在线观看www | 三级免费毛片 | 999国产精品视频免费 | 9999久久 | 欧美无乱码久久久免费午夜一区 | 91免费观看视频 | av在线播放一区二区 | 亚洲精品中文字幕在线观看 |