目前我正在使用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属性)我只能得出结论,我指的是错误的名称。
那么如何为以编程方式创建的对象指定名称?
答案 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);
}