行と列が動的に入力されるグリッドがあります。行を削除するには、次のコードを使用します。
seivesTorGrid.RowDefinitions.RemoveAt(rowIndex+1);
すべて手動でのみ行われます。行を削除した後の操作の結果は満足のいくものではありません:
xmlでのグリッドの定義は次のとおりです。
<Grid Name="seivesTorGrid" ShowGridLines="False" Margin="10, 0, 10, 0"
Width="Auto" Height="Auto" >
<Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" MinHeight="25"/>
</Grid.RowDefinitions>
</Grid>
これが私がCols&Rowをグリッドに追加する方法です:
private void AddColumns()
{
ColumnDefinition newCol = new ColumnDefinition();
//newCol.Width = GridLength.Auto;
newCol.MinWidth = 50;
newCol.MaxWidth = 150;
seivesTorGrid.ColumnDefinitions.Add(newCol);
GridViewColumnHeader gch = new GridViewColumnHeader();
gch.Content = "ID";
gch.FontSize = 12;
Grid.SetColumn(gch, 0);
seivesTorGrid.Children.Add(gch);
for (int i = 0; i < GlobalUtils.TOR_List.Count; i++)
{
newCol = new ColumnDefinition();
newCol.Width = GridLength.Auto;
newCol.MinWidth = 80;
newCol.MaxWidth = 150;
seivesTorGrid.ColumnDefinitions.Add(newCol);
gch = new GridViewColumnHeader();
gch.Content = GlobalUtils.TOR_List[i].TOR_Id;
gch.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center;
gch.VerticalContentAlignment = System.Windows.VerticalAlignment.Center;
gch.FontSize = 12;
Grid.SetColumn(gch, i + 1);
seivesTorGrid.Children.Add(gch);
}
}
private void AddRowToGrid(String id)
{
RowDefinition newRow = new RowDefinition();
seivesTorGrid.RowDefinitions.Add(newRow);
int rowIndex = seivesTorGrid.RowDefinitions.Count - 1;
TextBlock idTB = new TextBlock();
idTB.Text = id;
idTB.TextAlignment = TextAlignment.Left;
idTB.VerticalAlignment = System.Windows.VerticalAlignment.Center;
Grid.SetColumn(idTB, 0);
Grid.SetRow(idTB, rowIndex);
seivesTorGrid.Children.Add(idTB);
for (int i = 1; i < 3; i++)
{
Button tempBtn = new Button() {
Height=25,
Width=80,
Margin = new Thickness(5),
Content = "Add",
Background = Brushes.Brown,
Tag = rowIndex
};
tempBtn.Click += OnIdButtonClick;
Grid.SetColumn(tempBtn, i);
Grid.SetRow(tempBtn, rowIndex);
seivesTorGrid.Children.Add(tempBtn);
}
}
行を削除した後の結果が適切でないのはなぜですか?何を修正する必要がありますか?
どんな助けでも大歓迎です。