2011-03-17 79 views
0


目前我正在开发Microsoft Surface,主要是创建一个基于数据库动态创建ScatterViewItems的应用程序(尽管没有绑定,但对于问题并不重要)。尝试使用ScatterView将名称注册到SVI,然后将其放入控件中。以编程方式命名ScatterViewItem

声明对NameScope:

NameScope.SetNameScope(ActionArea, new NameScope()); 

创建/分配的SVI名称

foreach(KeyValuePair<int,Node> i in nodes) 
{ 
    ScatterViewItem item = new ScatterViewItem(); 
    item.Content = i.Value.Argument; 
    item.Tag = i.Value; 
    ActionArea.RegisterName("NodeID" + i.Key.ToString(), item); 
    ActionArea.Items.Add(item); 
} 

调用名称稍后

ScatterViewItem to = (ScatterViewItem)ActionArea.FindName(name); 

如果这就是所谓的,FindName返回null。从这里(并查看SVI的名称属性),我只能得出结论,我分配的名称是错误的。

那么你如何给程序创建的对象分配一个名称?

+0

没关系,它是与命名的东西无关的代码。 – 2011-03-17 09:44:37

回答

0

不要担心NameScope - 非常非常少需要。

foreach(KeyValuePair<int,Node> i in nodes) 
{  
    ScatterViewItem item = new ScatterViewItem();  
    item.Content = i.Value.Argument;  
    item.Tag = i.Value;  
    item.Name = "NodeID" + i.Key.ToString(); // set the name property 
    ActionArea.Items.Add(item); 
} 
相关问题