Silverlight&amp; JS:通过Javascript </rowdefinitions>从XAML获取<rowdefinitions> Name或uid

时间:2011-07-22 11:58:38

标签: javascript silverlight uid xname

我正在尝试获取&lt; RowDefinitions&gt;来自我的Xaml的元素,通过Javascript,所以我可以添加新的&lt; RowDefinition&gt;运行时的元素。

这样,如果用户输入数字&#39; 20&#39;,则20&lt; RowDefinition&gt;元素将添加到&lt; RowDefinitions&gt;。

问题在于&lt; RowDefinitions&gt;没有x:Name的可能性。它只有x:uid。那么可以从Javascript中获取uid吗?我需要&lt; RowDefinitions&gt;元素这样或那样(但只能通过JS)。我需要添加&lt; RowDefinition&gt;它的元素。

有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

假设Javascript API

没有<RowDefinitions>这样的元素,您将引用{1}元素的RowDefinitions属性,该元素在Xaml中表示为Grid。因此,您使用FindName查询<Grid.RowDefinitions>,然后使用Grid获取行定义的集合。让我们假设你有这个简单的Xaml开头: -

GetValue

因此,在您的Javascript中,您可以拥有以下代码: -

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

这将从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个实例。