如何绑定(bind)不同 View 模型的标签页? 为了更清楚,我有这个标签页:
<TabbedPage.Children>
<tabPages:Page1/>
<tabPages:Page2/>
<tabPages:Page3/>
</TabbedPage.Children>
这 3 个页面有不同的 View 模型。但是,问题是每个页面的 View 模型都不会绑定(bind)。有没有特定的方法可以做到这一点?
为了测试每个页面的 View 模型是否有效,我在标签页中内联了代码: 例如
<TabbedPage.Children>
<ContentPage Title="Test">
<Label Text="{Binding TestBind}"/>
</ContentPage>
</TabbedPage.Children>
并将其绑定(bind)到选项卡式页面(父级)的 View 模型 - 此方法有效。但是,如果我单独进行, View 模型将不会绑定(bind)。 例如
public class Page1ViewModel : BaseViewModel
{
public Page1ViewModel()
{
TestBind = "Test";
}
private string _TestBind;
public string TestBind
{
get { return _TestBind; }
set { SetProperty(ref _TestBind, value); }
}
}
这样使用,不会绑定(bind)
最佳答案
我已经成功了,所以这就是我所做的:
<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>
我使用元素的绑定(bind)上下文属性来设置它。
关于xaml - Xamarin TabbedPages MVVM 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47669539/