Xamarin TabbedPages MVVM绑定

jbtamares

如何将选项卡式页面与不同的视图模型绑定?为了更加清楚,我有以下标签页:

<TabbedPage.Children>     
    <tabPages:Page1/>
    <tabPages:Page2/>
    <tabPages:Page3/>
</TabbedPage.Children>

这3个页面具有不同的视图模型。但是,问题在于每个页面的视图模型都不会绑定。有没有特定的方法可以做到这一点?

为了测试每个页面的视图模型是否正常工作,我在选项卡式页面中内联了代码:

<TabbedPage.Children>
    <ContentPage Title="Test">
    <Label Text="{Binding TestBind}"/>
    </ContentPage>
</TabbedPage.Children>

并将其绑定到选项卡式页面(父级)的视图模型-此方法有效。但是,如果我单独进行操作,则视图模型将不会绑定。例如

public class Page1ViewModel : BaseViewModel
{
        public Page1ViewModel()
        {
            TestBind = "Test";
        }
        private string _TestBind;
        public string TestBind
        {
            get { return _TestBind; }
            set { SetProperty(ref _TestBind, value); }
        }
}

用这种方式,它不会绑定

jbtamares

我已经做到了,所以这就是我所做的:

  <TabbedPage.Children>
        <views:ChildPage1>
            <views:ChildPage1.BindingContext>
                <viewModels:ChildPage1ViewModel/>
            </views:ChildPage1.BindingContext>
        </views:ChildPage1>
        <views:ChildPage2>
            <views:ChildPage2.BindingContext>
                <viewModels:ChildPage2ViewModel/>
            </views:ChildPage2.BindingContext>
        </views:ChildPage2>
    </TabbedPage.Children>

我使用元素的绑定上下文属性进行设置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章