目前,我正在 Microsoft Surface 上工作,主要创建一个基于数据库动态创建 ScatterViewItems 的应用程序(尽管未绑定,原因对问题并不重要。)当我尝试将名称注册到 SVI 时,我的问题就出现了在将其放入控件之前的 ScatterView。
声明名称范围:
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 属性),我只能得出结论,我分配的名称是错误的。
那么如何给以编程方式创建的对象命名呢?