0


Currently I'm working on the Microsoft Surface primarily creating an application that dynamically creates ScatterViewItems based on a database (Though not binded, for reasons that are unimportant to the question.) My problem comes when I try to register a Name to an SVI with a ScatterView before placing it in the control.

Declaring the NameScope:

NameScope.SetNameScope(ActionArea, new NameScope());

Creating/Assigning the SVI a name

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);
}

Calling the name later on

ScatterViewItem to = (ScatterViewItem)ActionArea.FindName(name); 

When this is called, FindName returns null. From this (and looking at the SVI's Name property) I can only conclude I'm assigning the name wrong.

So how do you assign a name to a programmatically created object?

Cœur
  • 37,241
  • 25
  • 195
  • 267
James Boyden
  • 454
  • 4
  • 8

1 Answers1

0

Don't worry about NameScope - very very rarely needed.

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);
}
Robert Levy
  • 28,747
  • 6
  • 62
  • 94