您的位置:知识库 » .NET技术

在两个Silverlight应用间应用间数据通信DEMO(包括与Flash通信)

作者: 代震军  来源: 博客园  发布时间: 2008-10-20 13:37  阅读: 8562 次  推荐: 0   原文链接   [收藏]  

  上面的ScriptableType,ScriptableMember属性绑写是为了让html中的脚本代码可以访问(即可见)。

而下面的代码则是为了定义一个“脚本对象类”及其事件处理(包括参数)。

/// <summary>
/// 雇员事件参数(用于完成与js绑定事件参数)
/// </summary>
[ScriptableType]
public class EmployeeInfoEventArgs : EventArgs
{
    [ScriptableMember]
    
public EmployeeInfo employeeInfo { getset; }
}

/// <summary>
/// 要注册并在页面中使用的js调用脚本对象
/// </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
            });
        }
    }
}

接着就是一个雇员数据操作类,主要用于获取雇员信息,如下:

/// <summary>
/// 雇员信息管理类
/// </summary>
public class EmployeeManager
{
    
public IEnumerable<EmployeeInfo> employeeList;
    
/// <summary>
    
/// 初始化会员数据
    
/// </summary>
    public EmployeeManager()
    {
        
//初始化雇员数据
        employeeList = new List<EmployeeInfo>()
        {
            
new EmployeeInfo(){EmployeeNo = 10001, EmployeeName = "张三" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10002, EmployeeName = "李四" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10003, EmployeeName = "王五" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10004, EmployeeName = "马六" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10005, EmployeeName = "王大麻子" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10006, EmployeeName = "王宝强" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10007, EmployeeName = "王蛋蛋" , Address = "北京"},
            
new EmployeeInfo(){EmployeeNo = 10008, EmployeeName = "王五强" , Address = "北京"}
        };
    }

    
/// <summary>
    
/// 获取指定数量的雇员数据
    
/// </summary>
    
/// <param name="count">要获取的雇员信息数</param>
    
/// <returns></returns>    
    public IEnumerable<EmployeeInfo> GetEmployeeList(int count)
    {
        
return (from e in employeeList
                select 
new EmployeeInfo
                {
                    EmployeeNo 
= e.EmployeeNo,
                    EmployeeName 
= e.EmployeeName,
                    Address 
= e.Address

                }).Take(count);
    }

}


0
0
 
标签:Silverlight

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻