根据用户操作,我想将视图(在 MvxViewController 内)动态添加到 CollectionView 的子视图集合中。这就是我正在做的事情:
不起作用:SubviewThree 继承了 MvxViewController
var mvxViewController = new SubviewThree(); // SubviewThree inherits MvxViewController
var uiView = mvxViewController.View;
uiView.ClipsToBounds = true;
uiView.Hidden = false;
uiView.Frame = new RectangleF(0, 0, 320, 200);
CollectionView.AddSubview(uiView);
CollectionView.BringSubviewToFront(uiView);
作品:SubviewThree 继承 UIViewController
var mvxViewController = new SubviewThree(); // SubviewThree inherits UIViewController
var uiView = mvxViewController.View;
uiView.ClipsToBounds = true;
uiView.Hidden = false;
uiView.Frame = new RectangleF(0, 0, 320, 200);
CollectionView.AddSubview(uiView);
CollectionView.BringSubviewToFront(uiView);
作品:
var label = new UILabel(); // All simple controls work just fine
label.Text = "Test Label";
label.ClipsToBounds = true;
label.Hidden = false;
label.Frame = new RectangleF(0, 0, 320, 200);
CollectionView.AddSubview(label);
CollectionView.BringSubviewToFront(label);
在 MvvmCross 中实现这一目标的最佳方法是什么?请注意,我不能在这里使用数据绑定(并通过视图模型的 ObservableCollection 添加它),因为要添加的视图取决于用户操作 - 它可能不是同一类型。
这是我正在尝试做的事情:
在右/左按钮触摸时,我想交换视图。视图绑定到不同的视图模型。交换的视图可以是 V1 类型(有一个栏和另一个 UIView)或其他类型(只是一个 UIView)。
这是我的示例项目的 github 链接,以防上图不清楚。您只需运行该应用程序并单击“添加”按钮即可。将视图添加到子视图的代码在 BarCell.cs 的第 158 行中。我已经注释了上面提到的代码行。