SilverlightのXAMLに対して、
動的にオブジェクトを追加する場合、
createFromXaml(
を使って行うのが一般的なようです。
例えば、こんな感じです。
Silverlightの公式ヘルプを始め、
function onLoaded(sender, eventArg) {
var slControl = sender.getHost();
var t = slControl.content.createFromXaml('<TextBlock Text="こんにちは" />');
canvas.Children.Add(t);
}
似たようなコードが数多く紹介されていますが…
なぜかgetHost()が失敗します。怜
Silverlight2 Beta2でXAPを作成するタイプの、
要するにManaged JScriptが原因なのでしょうか?
原因不明のまま諦めてしまいましたが、
代替手段としてXamlReaderを使いました。
一応紹介しておきます。
senderの子要素としてTextBlockを追加する筈です。
Import("System.Windows.Markup.XamlReader");
function onLoaded(sender, evedntArg) {
var text = '<TextBlock Text="こんにちは"
xmlns="http://schemas.microsoft.com/client/2007"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" />';
var textObj = XamlReader.Load(text);
sender.Children.Add(textObj);
}
また、TextBlock(トップ要素)にネームスペースを定義してあげないと失敗します。