グリッドがあり、セルの1つにあるコントロールを動的に置き換える必要があります。グリッドセルを特定するための構文についてはわかりません。行番号と列番号をどこに入れるかは、その中にあるものを削除することができます。Silverlight:グリッド内の特定のセルのコンテンツを削除します。
4
A
答えて
10
あなたはセルを知っているし、コントロールが住んでいることを行た場合は、LINQを使用することができますそれをつかむための声明。
ここでは、私はプライベート変数を追加し、グリッドに入れデ・コントロールを思い出すことができ、行4
var control = (from d in grid.Children
where Grid.GetColumn(d as FrameworkElement) == 3
&& Grid.GetRow(d as FrameworkElement) == 4
select d).FirstOrDefault();
1
Grid.GetRowメソッドとGrid.GetColumnメソッドを使用して行と列の値をチェックし、値が一致したときに対象のコンテンツを置き換えることができます。ここでは、WPFでテストサンプルは、ですが、Silverlightで動作するはずです:イベントハンドラで
<Grid x:Name="SampleGrid">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Rectangle Fill="Red" Width="20" Height="20" Grid.Row="0" Grid.Column="0" />
<Rectangle Fill="Orange" Width="20" Height="20" Grid.Row="0" Grid.Column="1" />
<Rectangle Fill="Yellow" Width="20" Height="20" Grid.Row="0" Grid.Column="2" />
<Rectangle Fill="Green" Width="20" Height="20" Grid.Row="1" Grid.Column="0" />
<Rectangle Fill="Blue" Width="20" Height="20" Grid.Row="1" Grid.Column="1" />
<Rectangle Fill="Indigo" Width="20" Height="20" Grid.Row="1" Grid.Column="2" />
<Rectangle Fill="Violet" Width="20" Height="20" Grid.Row="2" Grid.Column="0" />
<Rectangle Fill="Black" Width="20" Height="20" Grid.Row="2" Grid.Column="1" />
<Rectangle Fill="Gray" Width="20" Height="20" Grid.Row="2" Grid.Column="2" />
<Button Grid.Row="3" Grid.ColumnSpan="3" Margin="10" x:Name="Swap" Click="Swap_Click" Content="Swap"/>
</Grid>
:
private void Swap_Click(object sender, RoutedEventArgs e)
{
Ellipse newEllipse = new Ellipse() { Fill = new SolidColorBrush(Colors.PaleGoldenrod), Width = 20d, Height = 20d };
for (int childIndex = 0; childIndex < this.SampleGrid.Children.Count; childIndex++)
{
UIElement child = this.SampleGrid.Children[childIndex];
if (Grid.GetColumn(child) == 2 && Grid.GetRow(child) == 2)
{
this.SampleGrid.Children.Remove(child);
Grid.SetRow(newEllipse, 2);
Grid.SetColumn(newEllipse, 2);
this.SampleGrid.Children.Add(newEllipse);
}
}
}
+0
を使用すると、多数または行/ colsのを持っている場合は、残りの子供を反復を避けるためにbreak文を追加したい場合がありますことを追加しておく必要がありますあなたの目標を達成した後。 –
0
、3欄にある最初のコントロールを取得しますLINQ文のです:
private Control controlCentral = null;
次に、この変数にグリッドに追加するコントロールを配置します。グリッドのコントロールを削除するには、Removeを使用します。
次のコードは、行0のコントロールを置き換えるコラム1:
private void MostrarControlCentral(Control control)
{
if (control != null)
{
control.SetValue(Grid.RowProperty, 0);
control.SetValue(Grid.ColumnProperty, 1);
}
this.LayoutRoot.Children.Remove(this.controlCentral);
if (control != null)
{
this.LayoutRoot.Children.Add(control);
}
this.controlCentral=control;
}
関連する問題
- 1. セル内のデータを含むセルのグリッド線の追加/削除
- 2. 特定のセルを削除するExcel
- 3. 特定の文字の後にセル内のデータを削除します。
- 4. datagridviewcomboboxcellをdatagridviewcomboboxcollumn内の1つの特定のセルから削除します
- 5. セル内の文字列から特定の文字を削除します。
- 6. コンテンツから特定のウェブサイトのURLを削除します。
- 7. 選択したセルでExcelシートから特定のコンテンツを削除
- 8. Googleスプレッドシート内の自動検索と置換スクリプト - 特定のセルのコンテンツを削除 - グローバル置換
- 9. 範囲内の特定のテキストを含むセルを削除する
- 10. パンダでデータフレーム内の特定の行を削除します
- 11. VBA:特定のセルから始まる整数の行を削除します。
- 12. Excel VBAセルからコンテンツを削除して合計行を削除します
- 13. 特定の列の値に基づいてセルの行を削除します
- 14. UICollectionView特定のセルのセル内容を更新します。
- 15. テキストベースのコンテンツから特定のhtmlタグを削除する
- 16. 特定のセルの値に基づいて行を削除し、その特定の列のセルの下にある空の行を削除するマクロ
- 17. PHPの特定のコンテンツを含むタグを削除しますか?
- 18. 行を左に動かしながら特定のセルを削除します
- 19. グリッド内のセルからコンテンツ/値を分割する
- 20. UIcollectionViewCellで長いジェスチャを削除する方法選択セルの特定のセル?
- 21. グリッドのセル間のスペースを削除する
- 22. 削除する特定のテーブルビューの選択セル3
- 23. 列の重複するセルの内容を削除します。
- 24. テーブル内のセルを削除するhtml
- 25. ハイブテーブル内の特定のバケットを削除できますか?
- 26. Node.js /ファイル内のコンテンツを削除する
- 27. トリガーワークシート_マージされたセルのコンテンツを削除して変更する
- 28. Seleniumを使用してテーブル/グリッド内の特定のレコードを検索して削除する方法
- 29. リスト内の特定のビューモデルを編集して削除する
- 30. SilverlightツールキットDataGridでセルの垂直セパレータを削除する
ニース - 再びLINQはループの必要性を排除します。 –