Sven-Michael に加えて、ListView
(まだ持っていない場合)の継承を作成して、次のDelegate
ように a を追加することで、彼のコードを充実させることができます。
public class AccessoryListView : ListView
{
public delegate void OnAccessoryTappedDelegate();
public OnAccessoryTappedDelegate OnAccessoryTapped { get; set; }
}
カスタムレンダラーから - 新しい継承に設定することを忘れないでくださいListView
- デリゲートを呼び出します
public class ContactListViewRenderer : ListViewRenderer, IUITableViewDelegate
{
private AccessoryListView _formsControl;
protected override void OnElementChanged(ElementChangedEventArgs<AccessoryListView> e)
{
base.OnElementChanged(e);
if (Control != null)
{
Control.WeakDelegate = this; // or. Control.Delegate
}
if (e.NewElement != null)
_formsControl = e.NewElement;
}
public virtual void AccessoryButtonTapped(UITableView tableView, NSIndexPath indexPath)
{
// accessory tapped
if (_formsControl.OnAccessoryTapped != null)
_formsControl.OnAccessoryTapped();
}
}
もちろん、そこにいくつかのパラメーターを追加して、共有コードにさらに多くのデータを提供することもできます。これにより、プラットフォーム固有のコードがいくつかありますが、「できるだけ早く」共有コードに戻り、コードをより再利用可能にします。
Map コントロールを使用した別のサンプルは、ここにあります。