2012-03-06 10 views
3

私は7行7列のグリッドを持っています。私は各セルにコントロールを動的に入れたいです。グリッドを使用したWindows Phone

私は位置x,yからこれらのコントロールのいずれかを取得することができますどのようにこのコード

Rectangle newRectangle = new Rectangle(); 

newRectangle.Tap += new EventHandler<GestureEventArgs>(Rectangle_KeyDown); 
newRectangle.Fill = HighlightColor; 

Grid.SetColumn(newRectangle, i); 
Grid.SetRow(newRectangle, ii); 

grid1.Children.Add(newRectangle); 

を使用するコントロールを追加するには?

私は

Grid.GetColumn(??); 
Grid.GetRow(??); 

のようなものを考えた。しかし、私は継続するのか分かりません。

私は本当に誰かが私を助けることを願っています。

答えて

4

これは機能が組み込まれていないため、手動で検索する必要があります。しかし、あなたは簡単にLINQで例えば、このような検索機能を書き込むことができます。

var rectangleAtXy = grid.Children.OfType<Rectangle>() 
    .SingleOrDefault(c => Grid.GetColumn(c) == x && Grid.GetRow(c) == y); 
1

これには機能はありません。グリッドの子の添付されたプロパティ amd Columnを読んで、それらのセルがどれであるかを判断する必要があります。

1

を私はあなたがそこに達成しようとしているのかわからないのですが、私はあなたのために働くかもしれない異なった、クリーンなアプローチを提案するかもしれません。

これは、ItemsPanelTemplateとしてUniformGridを持つListBoxを使用することを伴います。 次に、コレクションを作成し、それをこのリストのItemsSourceとして設定します。これで、2次元のパースペクティブ(col、row)から単一のディメンションのリスト(リスト)への簡単な変換を使用して、コントロールでリストを作成できるようになりました。コントロールの設定と取得は、その変換と同じくらい簡単です。

関連する問題