現在、私はMicrosoft Surfaceに取り組んでおり、主にデータベースに基づいてScatterViewItemsを動的に作成するアプリケーションを作成しています(ただし、質問にとって重要ではない理由により、バインドされていません)。コントロールに配置する前の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プロパティを見て)、名前を間違って割り当てていると結論付けることしかできません。
では、プログラムで作成されたオブジェクトにどのように名前を付けるのでしょうか。