从Tablesource访问ViewModel

时间:2014-03-17 10:17:57

标签: c# xamarin.ios mvvmcross

我的代码与此https://github.com/MvvmCross/MvvmCross-Tutorials/blob/master/Sample%20-%20CirriousConference/Cirrious.Conference.UI.Touch/Views/TwitterView.cs

类似

在TableSource类中,是否可以访问TwitterViewModel ViewModel属性而无需创建vm的新实例,使其成为静态或使用事件聚合?

例如:

public override float GetHeightForRow (UITableView tableView, NSIndexPath indexPath)
{
    return ViewModel.DoGetHeightForRow();
}

1 个答案:

答案 0 :(得分:0)

由于该类嵌套在View中,因此您只需添加访问权限 - 就像其他任何C#类一样 - 例如:

    public class TableSource : MvxSimpleTableViewSource
    {
        private TwitterView _parent;

        public TableSource (UITableView tableView, TwitterView parent)
            : base(tableView, TweetCell3.Identifier, TweetCell3.Identifier)
        {
            _parent = parent;
            tableView.RegisterNibForCellReuse(UINib.FromName(TweetCell3.Identifier, NSBundle.MainBundle), TweetCell3.Identifier);
        }

        public override float GetHeightForRow (UITableView tableView, NSIndexPath indexPath)
        {
            return _parent.SomeMethod(indexPath);
        }
    }