Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight&;JS:获取<;行定义>;通过Javascript从XAML获取名称或uid_Javascript_Silverlight_Uid_Xname - Fatal编程技术网

Silverlight&;JS:获取<;行定义>;通过Javascript从XAML获取名称或uid

Silverlight&;JS:获取<;行定义>;通过Javascript从XAML获取名称或uid,javascript,silverlight,uid,xname,Javascript,Silverlight,Uid,Xname,我试图通过Javascript从我的Xaml中获取元素,以便在运行时向其添加新元素 这样,如果用户输入数字“20”,那么将添加20个元素 问题是x:Name不可能出现。它只有x:uid。那么可以从Javascript中获取uid吗?我需要这种或那种方式的元素(但只能通过JS)。我需要给它添加元素 有什么想法吗 感谢您使用Javascript API 没有像这样的元素,您将引用网格元素的行定义属性,该元素在Xaml中表示为。因此,您可以使用FindName获取网格,然后使用GetValue获取行定

我试图通过Javascript从我的Xaml中获取元素,以便在运行时向其添加新元素

这样,如果用户输入数字“20”,那么将添加20个元素

问题是x:Name不可能出现。它只有x:uid。那么可以从Javascript中获取uid吗?我需要这种或那种方式的元素(但只能通过JS)。我需要给它添加元素

有什么想法吗


感谢您使用Javascript API

没有像
这样的元素,您将引用
网格
元素的
行定义
属性,该元素在Xaml中表示为
。因此,您可以使用FindName获取
网格
,然后使用
GetValue
获取行定义的集合。假设您有一个简单的Xaml开始:-

<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);
     }
}
函数rootGridLoaded(发送方)
{
var plugin=sender.getHost();
var rowDefs=sender.GetValue(“行定义”);
对于(变量i=0;i<20;i++)
{
var rowDef=plugin.content.createFromXaml(“”);
rowDefs.add(rowDef);
}
}

这将从
网格
中获取
行定义
集合(在本例中,它是发送方,但您同样可以轻松地使用
FindName
获取命名网格。然后它循环向集合添加20个
行定义
实例。

假设使用Javascript API

没有像
这样的元素,您将引用
网格
元素的
行定义
属性,该元素在Xaml中表示为
。因此,您可以使用FindName来获取
网格
,然后使用
GetValue
来获取行定义的集合e Xaml以以下内容开始:-

<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);
     }
}
函数rootGridLoaded(发送方)
{
var plugin=sender.getHost();
var rowDefs=sender.GetValue(“行定义”);
对于(变量i=0;i<20;i++)
{
var rowDef=plugin.content.createFromXaml(“”);
rowDefs.add(rowDef);
}
}

这将从
网格
(在本例中,它是发送方,但您同样可以轻松地使用
FindName
获取命名网格。然后它循环在集合中添加20个
rowDefinition
实例。

由于绝大多数Silverlight开发现在都使用托管API,其中应用程序a在XAP文件中发布,因此明确指出无论您使用的是旧得多的Javascript API,还是需要托管API的HtmlBridge帮助,我都在使用旧得多的Javascript API(Silverlight 1.0)。由于目前绝大多数Silverlight开发都使用托管API,其中应用程序是在XAP文件中发布的,因此,如果您明确指出您是在使用更旧的Javascript API,还是需要对托管API的HtmlBridge提供帮助,将非常有帮助。我使用的是更旧的Javascript API(Silverlight 1.0).@Silverlight先生,如果这个答案解决了你的问题,则将其标记为正确。@Silverlight先生,如果这个答案解决了你的问题,则将其标记为正确。