2

我正在尝试通过 Javascript 从我的 Xaml 获取 <RowDefinitions> 元素,因此我可以在运行时向其添加新的 <RowDefinition> 元素。

这样,如果用户输入数字“20”,那么 20 个 <RowDefinition> 元素将被添加到 <RowDefinitions> 中。

问题是 <RowDefinitions> 没有 x:Name 的可能性。它只有 x:uid。那么是否可以从 Javascript 中获取 uid?我需要一种或另一种方式的 <RowDefinitions> 元素(但只能通过 JS)。我需要向它添加 <RowDefinition> 元素。

有任何想法吗?

谢谢

4

1 回答 1

0

假设 Javascript API

没有这样的元素,因为<RowDefinitions>您将引用在 Xaml中表示的元素的RowDefinitions属性。因此,您使用 FindName 来获取然后使用来获取行定义的集合。让我们假设您从这个简单的 Xaml 开始:-Grid<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);
     }
}

这将从RowDefinitionsGrid在这种情况下是发送者,但您很容易习惯于FindName获取命名网格)获取集合。然后它循环添加 20 个RowDefintion实例 ot 集合。

于 2011-07-22T12:30:25.377 回答