以编程方式命名ScatterViewItem

时间:2011-03-17 08:13:18

标签: c# pixelsense scatterview


目前我正在使用Microsoft Surface主要创建一个应用程序,该应用程序基于数据库动态创建ScatterViewItems(虽然没有绑定,原因对于问题不重要。)当我尝试将名称注册到SVI时出现问题将ScatterView放入控件之前的一个ScatterView。

声明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的Name属性)我只能得出结论,我指的是错误的名称。

那么如何为以编程方式创建的对象指定名称?

1 个答案:

答案 0 :(得分: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);
}