ユーザーが新しい行を追加できるよう、コントロールに新しい行を表示できます。
ユーザーは新しい行にデータを入力し、次のいずれかの方法で確定できます。
ユーザーは新しい行への入力を次の方法でキャンセルできます。この場合、入力途中のデータは破棄されます。
なお、ユーザーによる新規行の追加を許可するには CanUserAddRows を true に設定します。
上の図では新しい行が最後に表示されていますが、最初に表示することもできます。新しい行の表示位置を変更するには、コントロールの NewRowPosition プロパティを設定します。
新しい行はユーザーがいずれかのセルに入力したときに初期化されます。行を初期化する際、コントロールの InitializingNewItem イベントが発生します。このイベントを使用して、新しい行に初期値を設定できます。
サンプルコード次のサンプルコードは「StockDate」および「ExpireDate」フィールドの初期値を今日の日付に設定します。なお、このサンプルコードではコントロールを StockCollection に連結しています。Stock および StockCollection クラスの完全なコードは「非連結列」のサンプルコードを参照してください。
XAML |
コードのコピー |
---|---|
<sg:GcSpreadGrid Name="gcSpreadGrid1" ItemsSource="{StaticResource StockCollection}" CanUserAddRows="True" InitializingNewItem="gcSpreadGrid1_InitializingNewItem"/> |
C# |
コードのコピー |
---|---|
private void gcSpreadGrid1_InitializingNewItem(object sender, GrapeCity.Windows.SpreadGrid.InitializingNewItemEventArgs e) { ((Stock)e.NewItem).StockDate = DateTime.Today; ((Stock)e.NewItem).ExpireDate = DateTime.Today; } |
Visual Basic |
コードのコピー |
---|---|
Private Sub gcSpreadGrid1_InitializingNewItem(sender As System.Object, e As GrapeCity.Windows.SpreadGrid.InitializingNewItemEventArgs) DirectCast(e.NewItem, Stock).StockDate = DateTime.Today DirectCast(e.NewItem, Stock).ExpireDate = DateTime.Today End Sub |
新しい行の外観はコントロールの NewRowStyle または NewRowStyleName プロパティで設定できます。
コントロールの Rows プロパティで行のコレクションを参照し RowCollection クラスのメソッドを使用します。新規行に関するメソッドは次のとおりです
メソッド | 説明 |
---|---|
AddNew | 新しい行を追加 |
CommitNew | 新しい行を確定 |
CancelNew | 確定前の新しい行を破棄 |
新しい行は CommitNew メソッドの実行以外にも次の場合に確定されます。