2017-05-12 6 views
0

現在、私はReactiveUIでReactiveUIにバインドされているReactiveTableViewControllerを持っています。それは次のように一緒にリンクされています。ReactiveTableViewControllerでSelectedRowを取得し、次のコントローラに移動する方法

public class ServicesView : ReactiveTableViewController<ServicesViewModel> { 
public ServicesView() : base() 
{ 
} 

public override void ViewDidLoad() 
{ 
    base.ViewDidLoad(); 

    SetUpUserInterface(); 

    SetTableViewProperties(); 

    this.WhenActivated(disposable => 
    { 
     TableView.Delegate = this; 
     this.TableView.RegisterNibForCellReuse(RxCell.Nib, RxCell.Key); 
     //this.WhenAnyValue(view => view.ViewModel.Services).BindTo<ServiceEntryModel, RxCell>(this.TableView, RxCell.Key, 50, null); // does not work 
     TableView.Source = new ReactiveTableViewSource<ServiceEntryModel>(TableView, ViewModel.Services, RxCell.Key, 50f, null); // also not working 
    } 
}} 

なぜこれが起こっている誰も私を説明することができない、のUITableView内の行を選択するときにConsole.WriteLineを次呼び出されることはありません取得オーバーライドする場合は?大変感謝します、読んでいただきありがとうございます。

public override void RowSelected(UITableView tableView, NSIndexPath indexPath) 
{ 
    base.RowSelected(tableView, indexPath); 

    Console.WriteLine("Hi StackOverflow"); 
} 

答えて

1

テーブルビューにデータをバインドする場合、新しいTableViewSourceこれは観察ElementSelectedを有するReactiveTableViewSource<TSource>で、テーブルビューに割り当てられています。このオブザーバブルを購読して、選択した要素の変更を通知することができます。

TableView.SourceをReactiveTableViewSource<TSource>にキャストし、自分でElementSelectedに登録するオプションがあります。それとも、あなたの結合にinitSourceデリゲートを供給することができます。また

source => source.ElementSelected.Subscribe(OnElementSelected)

、この観測可能から返さobjectは、実際には、ソースデータ内の対応するインデックスにある要素です。

関連する問題