В настоящее время я работаю над Microsoft Surface, в первую очередь создавая приложение, которое динамически создает ScatterViewItems на основе базы данных (хотя и не связывается по причинам, которые не важны для вопроса.) Моя проблема возникает, когда я пытаюсь зарегистрировать имя в SVI с 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 возвращает ноль. Исходя из этого (и глядя на свойство имени SVI), я могу только заключить, что неправильно назначаю имя.
Итак, как вы назначаете имя программно созданному объекту?