【发布时间】:2014-01-08 02:54:38
【问题描述】:
mvvmcross 是否原生支持绑定到嵌套属性?
例如我有一个视图模型如下:
class MainViewModel : MvxViewModel
{
public SubViewModelBase SubViewModel
{
get { return _subViewModel; }
set { _subViewModel = value; RaisePropertyChanged(() => SubViewModel); }
}
}
子视图模型可能会改变,但 MainView 将绑定到所有 SubViewModelBase 类的相同属性...一个示例 SubViewModelBase 类如下:
class SubViewModelBase : MvxViewModel
{
public bool ShowIndeterminantProgress
{
get { return _showIndeterminantProgress; }
set { _showIndeterminantProgress = value; RaisePropertyChanged(() => ShowIndeterminantProgress);}
}
// ... More common properties ...
}
所以 MainView 最好像这样绑定
this.CreateBinding(_progressBar)
.For(view=> view.Visibility)
.To<MainViewModel>(vm => vm.SubViewModel.ShowIndeterminantProgress)
.WithConversion("Visibility")
.Apply();
这应该有效吗?它似乎不起作用,但输出中没有绑定错误?
【问题讨论】: