Silverlight&;JS:获取<;行定义>;通过Javascript从XAML获取名称或uid
我试图通过Javascript从我的Xaml中获取元素,以便在运行时向其添加新元素 这样,如果用户输入数字“20”,那么将添加20个元素 问题是x:Name不可能出现。它只有x:uid。那么可以从Javascript中获取uid吗?我需要这种或那种方式的元素(但只能通过JS)。我需要给它添加元素 有什么想法吗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 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先生,如果这个答案解决了你的问题,则将其标记为正确。