Alp*_*age 2 xamarin.ios xamarin.android monogame mvvmcross xamarin
我正在尝试从我的MvvmCross monodroid活动视图在RelativeLayout内构建Monogame视图。
android Activity继承自Microsoft.Xna.Framework.AndroidGameActivity,以便能够在RelativeLayout(运行)中运行Monogame。
我的MvvmCross活动继承自MvxBindingActivityView(正在工作)。
因此,我需要一种方法来运行游戏并在同一活动中绑定一些数据。
在此先感谢您的帮助。
松散地说,您可以通过继承一些接口,然后剪切并粘贴少量代码来完成ViewModel的基本加载和分配,从而将任何Activity转换为MvxActivity。
例如,请参阅#Region和IMvxAndroidView<TViewModel>添加以使MvxActivityView.cs从正常状态开始Activity。
例如,它是用于将像Google这样的专用活动改编MapActivity为MvxMapActivityView.cs的相同区域和界面
在此级别上,“活动/视图”具有ViewModel可在C#代码中使用的,但没有聪明的xml膨胀-它没有聪明的Binding支持。
可以在此级别编写代码-我已经交付了没有绑定的应用程序-但是许多用户也喜欢添加DataBinding ...
要添加此DataBinding支持,您需要添加更多代码,这些代码提供BindingInflate,绑定存储,绑定处理等。
例如,MvxActivityView使用IMvxBindingActivity接口和#region 扩展原始文件,例如:MvxBindingActivityView.cs
例如MvxMapActivityView,使用相同的区域和接口进行扩展:MvxBindingMapActivityView.cs
因此,扩展您的自定义AndroidGameActivity:
AndroidGameActivity以获取ViewModelOwningGameActivity<T>和剪切并粘贴IMvxAndroidView<TViewModel>接口,并#region从MvxActivityView<T>提供来提供ViewModel方法,字段和属性。然后假设您要绑定:
ViewModelOwningGameActivity<T>获得BindingGameActivity<T>和剪切和粘贴IMvxBindingActivity,并#region从MvxBindingActivityView<T>获得的绑定方法对于专业活动,您可能需要添加更多-例如,您可以为MapActivity添加一些自定义帮助方法来绘制点和线,或者让GameActivity做任何游戏 ……但这取决于各个实现。
抱歉,改编“活动”时需要剪切和粘贴代码-我已尝试将其降至最低。但是,到目前为止,编写Mvx是我真正想要的C#中的多重继承或Mixins。
| 归档时间: |
|
| 查看次数: |
1382 次 |
| 最近记录: |