Назовите ScatterViewItem программно - PullRequest
0 голосов
/ 17 марта 2011


В настоящее время я работаю над 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), я могу только заключить, что неправильно назначаю имя.

Итак, как вы назначаете имя программно созданному объекту?

1 Ответ

0 голосов
/ 18 марта 2011

Не беспокойтесь о 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);
}
...