- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的父ViewModel中,我使用以下代码通过ReactiveUI的路由导航到ChildView
appBootstrapper.Router.Navigate.Execute(new ChildViewModel(HostScreen)).Subscribe();
ShowActivityIndicator = true;
appBootstrapper.Router.Navigate.Execute(new ChildViewModel(HostScreen)).Subscribe();
ShowActivityIndicator = false;
ShowActivityIndicator = false;
。
ShowActivityIndicator = false;
之后执行
?谢谢!ChildView
技术,但是lambda代码从不执行。我的代码如下...var microsoftSignInVM = new ViewModel.MicrosoftSignInVM(HostScreen);
//
microsoftSignInVM.WhenNavigatingFromObservable().Subscribe((_) =>
{
ShowActivityIndicator = true;
//
Data.Synchronisation.SynchroniseLocalDataCacheAsync();
//
appBootstrapper.Router.Navigate.Execute(new ViewModel.SelectJobVM(HostScreen)).Subscribe();
//
ShowActivityIndicator = false;
});
//
appBootstrapper.Router.Navigate.Execute(microsoftSignInVM).Subscribe();
namespace TestApp.Test
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class TestAV : ReactiveContentPage<TestAVM>
{
public TestAV()
{
InitializeComponent();
//
this.WhenActivated(
disposables =>
{
this.BindCommand(this.ViewModel, x => x.ClickCommand, x => x.button)
.DisposeWith(disposables);
});
}
}
}
namespace TestApp.Test
{
public class TestAVM : ReactiveObject, IEnableLogger, IRoutableViewModel
{
public TestAVM(IScreen hostScreen)
{
_HostScreen = hostScreen;
//
TestBVM testBVM = new TestBVM(_HostScreen);
//
_ClickCommand = ReactiveCommand.CreateFromObservable(() => _HostScreen.Router.Navigate.Execute(testBVM).Select(_ => Unit.Default));
//
testBVM.WhenNavigatingFromObservable().Subscribe((_) =>
{
ShowActivityIndicator = true;
});
}
//
public bool ShowActivityIndicator { get; set; }
//
private readonly ReactiveCommand<Unit, Unit> _ClickCommand; public ReactiveCommand<Unit, Unit> ClickCommand => _ClickCommand;
//
private readonly IScreen _HostScreen; public IScreen HostScreen => _HostScreen;
//
public string UrlPathSegment => "TestA";
}
}
namespace TestApp.Test
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class TestBV : ReactiveContentPage<TestBVM>
{
public TestBV()
{
InitializeComponent();
//
this.WhenActivated(
disposables =>
{
this
.BindCommand(this.ViewModel, x => x.ClickCommand, x => x.button)
.DisposeWith(disposables);
});
}
}
}
namespace TestApp.Test
{
public class TestBVM : ReactiveObject, IEnableLogger, IRoutableViewModel
{
public TestBVM(IScreen hostScreen)
{
_HostScreen = hostScreen;
}
//
public ReactiveCommand<Unit, Unit> ClickCommand => _HostScreen.Router.NavigateBack;
//
private readonly IScreen _HostScreen; public IScreen HostScreen => _HostScreen;
//
public string UrlPathSegment => "TestB";
}
}
namespace TestApp
{
public class AppBootstrapper : ReactiveObject, IScreen
{
public AppBootstrapper(IMutableDependencyResolver dependencyResolver = null, RoutingState router = null)
{
Router = router ?? new RoutingState();
//
RegisterParts(dependencyResolver ?? Locator.CurrentMutable);
//
Router.Navigate.Execute(new Test.TestAVM(this));
}
public RoutingState Router { get; private set; }
private void RegisterParts(IMutableDependencyResolver dependencyResolver)
{
dependencyResolver.RegisterConstant(this, typeof(IScreen));
//
dependencyResolver.Register(() => new Test.TestAV(), typeof(IViewFor<Test.TestAVM>));
dependencyResolver.Register(() => new Test.TestBV(), typeof(IViewFor<Test.TestBVM>));
}
public Page CreateMainPage()
{
return new RoutedViewHost();
}
}
}
<?xml version="1.0" encoding="utf-8" ?>
<rxui:ReactiveContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:rxui="clr-namespace:ReactiveUI.XamForms;assembly=ReactiveUI.XamForms"
xmlns:vm="clr-namespace:TestApp.Test"
x:TypeArguments="vm:TestAVM"
x:Class="TestApp.Test.TestAV">
<ContentPage.Content>
<StackLayout>
<Button x:Name="button" Text="click A" HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage.Content>
</rxui:ReactiveContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<rxui:ReactiveContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:rxui="clr-namespace:ReactiveUI.XamForms;assembly=ReactiveUI.XamForms"
xmlns:vm="clr-namespace:TestApp.Test"
x:TypeArguments="vm:TestBVM"
x:Class="TestApp.Test.TestBV">
<ContentPage.Content>
<StackLayout>
<Button x:Name="button" Text="click B" HorizontalOptions="CenterAndExpand" />
</StackLayout>
</ContentPage.Content>
</rxui:ReactiveContentPage>
<rxui:ReactiveUserControl x:Class="TestApp.TestAV"
x:TypeArguments="vm:TestAVM"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:rxui="http://reactiveui.net"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:TestApp.Test">
<Grid>
<Button x:Name="button" Content="click A" />
</Grid>
</rxui:ReactiveUserControl>
<rxui:ReactiveUserControl x:Class="TestApp.TestBV"
x:TypeArguments="vm:TestBVM"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:rxui="http://reactiveui.net"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:TestApp.Test">
<Grid>
<Button x:Name="button" Content="click B" />
</Grid>
</rxui:ReactiveUserControl>
_ClickCommand = ReactiveCommand.CreateFromObservable(() => _HostScreen.Router.Navigate.Execute(new TestAVM()).Select(_ => Unit.Default));
WhenNavigatingFromObservable().Subscribe(...)
似乎有问题,但是我愿意接受其他观察!
最佳答案
您可以采用几种不同的方法来处理它。
路由器具有几个可观察对象,您可以在调用导航堆栈上的操作时进行订阅。您可以使用RoutableViewModelMixin
中还有一个扩展方法WhenNavigatingFromObservable
。
public void ShowChildView()
{
ShowActivityIndicator = true;
var childViewModel = new ChildViewModel(HostScreen);
// Use the extension method to get an observable when the child view is navigated away from, subscribe and set the variable.
childViewModel.WhenNavigatingFromObservable().Subscribe(x => ShowActivityIndicator = false);
appBootstrapper.Router.Navigate.Execute(childViewModel).Subscribe();
}
public ChildView()
{
this.WhenActivated(disposable =>
{
// do activation logic.
return new[] { Disposable.Create(() => DoDeactivationLogic());
}
关于c# - Xamarin Forms/ReactiveUI Router-在关闭 subview 后显示 subview 并执行父ViewModel代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56147770/
我在自定义表格单元格中长按时添加 subview ,但是当我滚动表格时, subview 消失。 p> 我应该怎么做,以便当我向后滚动时,该 subview 仍然显示/出现在该单元格上,或者换句话说,
如何遍历 UIView 的所有 subview ,以及它们的 subview 和它们的 subview ? 最佳答案 使用递归: // UIView+HierarchyLogging.h @inter
如果我有 contentView 和 2 个 subview 。我想根据subviewB居中subviewA subviewA 和 subviewB 有相同的父 View 。 这就是我现在正在做的,将
我想向 self.view 添加一个覆盖整个区域的 subview (如调光 View )。但在它下面,有一些 View 我不希望受到添加的 subview 的影响(我不希望这些 View 具有变暗的
我正在尝试向 UITabBar 添加 subview ,它应该位于其他 UITabBar subview 之后。 我在 UITabBarController 的子类中添加了这样的 subview :
图像描述了我必须将这种 subview 添加到我现有的单元格中,并且在多次单击“添加”图标时还要添加相同的 subview 。 我在添加 subview 时遇到困难。如果有人能为我提供处理此结构的正确
我添加了一个 subview ,如下所示: func showPlayerView2() { self.view.frame = CGRect(x: 0, y: 0, width: view.
我的问题是关于 UIView/CALayer: Transform triggers layoutSubviews in superview 据报道,来自苹果的 TSI 回复: Generally,
我试图为我的主视图创建一个辅助 View 。这个 subview 需要很小的高度,它需要适合另一个带有标签的大 UIView。 问题是当我使用 UIView addSubview 时,第三个 UIVi
我正在尝试淡出整个 View ,但只有一个特定的 subview , 这将强调 subview更清晰的外观。假设 self.view 有 5 textfields和 2 UIView如subviews
我确信我在这里错过了一些愚蠢的东西,但我有 mainView、subviewA 和 subviewB。我试图将 subviewB 添加到 subviewA 并将其锚定在 subviewA 内部,但是它
我有一个包含 3 个 subview 的 View ,分别称为 view A、view B、view C。 当我删除 subview 时,意味着我需要自动设置边距以进行调整。 当我删除 view A
我有两个加载的 subview 。一个是位于 View Controller 内部的选项卡栏,它很早就加载,第二个是按下选项卡栏项目时出现的 View 。 但是,当添加此 subview 时,它会加载
在 iOS 应用中,我在主视图中添加了一个 subview : [self.view addSubview:firstUIImageSubview]; 但是在 subview 类 firstUIIma
我正在制作一个球程序,您可以通过长按手势将球 UIView subview 添加到 super View 。点击 View 会将其从父 View 中移除。 添加所有 View 效果很好,重新添加 Vi
我使用以下代码在单击按钮时将日期选择器 View 添加到我的应用程序主视图。 - (IBAction)CalenderButton_Click:(id)sender { // code to add
我正在努力向 View 添加 subview 。进度变量在其 View Controller 的 viewDidLoad() 中设置。 progressView frame size 设置正确,只是添
这是我的代码 var button = [UIButton?](count:3, repeatedValue: UIButton()) for i in 0...2{
我有一个 UIViewController,里面有几个不同的 UIView subview 。当用户调用某个 Action 时,我手动更改每个的大小、比例和位置。我想更新其中一个 UILabel( s
我的屏幕有一个主视图模型。它由 2 个 subview 模型组成。 其中一个负责注册部分。其中一个处理登录部分。其中一个负责处理菜单部分(如果经过身份验证,可以显示哪些菜单项,以及“欢迎“用户名”类型
我是一名优秀的程序员,十分优秀!