1
私は、選択した行インデックスの隣のインデックスに2行を追加します。 たとえば、インデックス4でローをクリックした場合、インデックス5,6,7で追加するローがいくつか必要です。これらのインデックスの実際の行は、8,9,10などに前進します。UITableView Xamarin.iosで目的のインデックスに行を挿入するには?
私は、選択した行インデックスの隣のインデックスに2行を追加します。 たとえば、インデックス4でローをクリックした場合、インデックス5,6,7で追加するローがいくつか必要です。これらのインデックスの実際の行は、8,9,10などに前進します。UITableView Xamarin.iosで目的のインデックスに行を挿入するには?
テーブルビューのソースMyTableViewSource
には、RowSelected
を上書きする必要があります。この方法では、行番号を確認してテーブルビューソースのItems
に項目を追加した後に、に電話する必要があります。
class MyTableViewSource : UITableViewSource
{
private readonly UITableView _table;
public List<string> Items { get; }
public MyTableViewSource(UITableView table)
{
_table = table;
Items = new List<string> { "Hello", "World", "Bla", "Foo" };
}
public override UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath)
{
var item = Items[indexPath.Row];
var cell = // create cellfor item
return cell;
}
public override nint RowsInSection(UITableView tableview, nint section)
{
return Items.Count;
}
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
if (indexPath.Row == 2)
{
Items.Insert(3, "Horst");
Items.Insert(4, "Klaus");
Items.Insert(5, "Peter");
_table.ReloadData();
}
}
}
:
var table = new UITableView();
table.Source = new MyTableViewSource(table);
を使用すると、アニメーションをより細かく制御したい場合は、このバージョンを使用することができます:多くのthnx、役立ちました
public override void RowSelected(UITableView tableView, NSIndexPath indexPath)
{
if (indexPath.Row == 2)
{
_table.BeginUpdates();
Items.Insert(3, "Horst");
Items.Insert(4, "Klaus");
Items.Insert(5, "Peter");
_table.InsertRows(new[] { NSIndexPath.Create(0, 3), NSIndexPath.Create(0, 4), NSIndexPath.Create(0, 5) }, UITableViewRowAnimation.Left);
_table.EndUpdates();
}
}
をよく。 – TheMAMs
これがあなたの質問に答えるならば、それを回答として受け入れます。そうすれば未回答の質問レーンに残ることはありません。 http://stackoverflow.com/help/someone-answers –
これは私にとって非常に役に立ちました、ありがとうございました! –