2

XamlからJavascriptを介して<RowDefinitions>要素を取得しようとしているので、実行時に新しい<RowDefinition>要素を追加できます。

このように、ユーザーが数値「20」を入力すると、20個の<RowDefinition>要素が<RowDefinitions>に追加されます。

問題は、<RowDefinitions>にx:Nameの可能性がないことです。x:uidしかありません。では、Javascript内からuidをフェッチすることは可能でしょうか?<RowDefinitions>要素が何らかの形で必要です(ただし、JSを介してのみ)。<RowDefinition>要素を追加する必要があります。

何か案は?

ありがとう

4

1 に答える 1

0

JavascriptAPIを想定

Xamlで表される要素のプロパティを<RowDefinitions>参照するような要素はありません。したがって、FindNameを使用して取得し、次に使用して行定義のコレクションを取得します。最初にこの単純なXamlがあると仮定しましょう:-RowDefinitionsGrid<Grid.RowDefinitions>GridGetValue

<Grid
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   Loaded="rootGridLoaded" />

したがって、Javascriptには、次のコードを含めることができます。-

function rootGridLoaded(sender)
{
     var plugin = sender.getHost();
     var rowDefs = sender.GetValue("RowDefinitions");
     for (var i=0; i < 20; i++)
     {
         var rowDef = plugin.content.createFromXaml("<RowDefinition />");
         rowDefs.add(rowDef);
     }
}

これRowDefinitionsにより、Grid(この場合は送信者ですが、名前付きグリッドを取得するのと同じくらい簡単に使用できます。次に、コレクションに20個のインスタンスFindNameを追加してループします。RowDefintion

于 2011-07-22T12:30:25.377 に答える