SilverlightにjQueryのパワーを

ところでこのコードを見てくれ・・・こいつをどう思う?

Page.xaml.cs
private void LayoutRoot_Loaded(object sender, RoutedEventArgs eventArgs) {
    var data = new[] {
        new { Name="A", Member=new[] { "Bob", "John" } },
        new { Name="B", Member=new[] { "Cozy", "Sally" } }
    };
    new JQuery("#button1").Click(() => {
        new JQuery("#content").Append(
            JQuery.Ul.Append(
                JQuery.Convert(data, o => JQuery.Li.Text(o.Name)
                    .Append(
                        JQuery.Ul.Append(
                            JQuery.Convert(o.Member, m => JQuery.Li.Text(m))
                        )
                        .Hide()
                    )
                    .Click(li => li.Children(":first").SlideToggle(EffectSpeed.Fast))
                )
            )
        );
    });
}

こいつをホストするHTMLはこんな感じになる。

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Test Page for Silverlight.JQuery</title>
    <style type="text/css">
    body {
        padding: 4px;
    }
    #content {
        width: 300px;
        height: 200px;
        border: solid 2px silver;
        margin-top: 5px;
        overflow: scroll;
    }
    </style>
    <script type="text/javascript">
        function onSilverlightError(sender, args) {
            if (args.errorType == "InitializeError")  {
                var errorDiv = document.getElementById("errorLocation");
                if (errorDiv != null)
                    errorDiv.innerHTML = args.errorType + "- " + args.errorMessage;
            }
        }
    </script>
    <script type="text/javascript" src="js/jquery-1.2.3.pack.js"></script>
</head>

<body>
    <div id='errorLocation' style="font-size: small;color: Gray;"></div>

    <div id="silverlightControlHost">
        <object data="data:application/x-silverlight," type="application/x-silverlight-2-b1" width="0px" height="0px">
            <param name="source" value="ClientBin/Silverlight.JQuery.Test.xap"/>
            <param name="onerror" value="onSilverlightError" />
            <param name="background" value="white" />
            
            <a href="http://go.microsoft.com/fwlink/?LinkID=108182" style="text-decoration: none;">
                <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>
            </a>
        </object>
        <iframe style='visibility:hidden;height:0;width:0;border:0px'></iframe>
    </div>
        
    <input type="button" value="button1" id="button1" />
    
    <div id="content">
    </div>

</body>
</html>

実行するとこんな画面が表示される。

アイテムをクリックするとツリーが展開される。

う〜ん、勢いでSilverlightからJQueryを呼び出すためのラッパーを作ってみたけど、使い道があるかな。

こいつのソースは以下からダウンロードできます。ご自由にお使いください。