2017-03-31 15 views
0

現在のビューの特定の領域にビューを動的に作成して追加するにはどうすればよいですか?例えばアンドロイドMvxFrameControlを作成して追加しますか?他のレイアウトでMvxFrameControlのビューを追加して追加するにはどうすればいいですか?

私はAndroidの

var frameHelpControl = (MvxFrameControl)ViewFactory.CreateByModel(frameHelpControlModel); 
regionForHelpFrame.AddView(frameHelpControl, new ViewGroupParameters(.....)); 

にいくつかなどを必要とする私は、DI工場を経由してモデルでビューを作成する機能を必要とし、任意の領域にそれを追加します。私はstandartのプレゼンターの中にそのような工場が存在することを知っていますが、もし私がプレゼンターなしで私のためのコントローラを作成する必要があるのですか?

例えば、私はMvxFrameControlを継承し、する必要でしょうBubbleVCため、私はmvvmCrossのAndroid/iOSの上でそれを書き換えることができますどのように古いiOSのプロジェクト

private void AddBubble(BubbleMC newBubbleModel) 
{ 
     var bubble = (BubbleVC)ViewContollerFactory.ViewControllerByModel(newBubbleModel, true);    
     bubble.View.Frame = View.Bounds;    
     AddChildViewController(bubble); 
     Add(bubble.View); 
     bubble.DidMoveToParentViewController(this); 
} 

(私はそれは同じだろうと思う)内のコードを持っていますビューに追加されました。

答えて

1

あなたはこのようにViewModelにをロードすることができます。そして、あなただけのMvxFrameControlを作成し、BindingContextに新しく作成されたビューモデルを割り当てることができます

var loaderService = Mvx.Resolve<IMvxViewModelLoader>(); 
var viewModelRequest = MvxViewModelRequest<MyViewModel>.GetDefaultRequest(); 
var viewModel = loaderService.LoadViewModel(viewModelRequest, null); 

しかし、ビューを作成して親ビューに追加するのではなく、AndroidのRecyclerViewやiOSのTableView/CollectionViewなどのメカニックに頼るべきです。

関連する問題