使用领域和MVVMLight

时间:2017-06-14 07:13:41

标签: xamarin realm

我使用MVVMLight在Xamarin中开发和应用。我的团队使用iOS和Android本机,因此不使用Xamarin Forms。

我们使用Realm存储数据,并希望使用MVVMLight将数据绑定到UI。我们有public IRealmCollection<Info> InfoList { get; private set; }

ObservableCollection<T>GetController来绑定数据。 (https://mallibone.com/post/mvvm-light-ios-uitableview-binding

Realm for Xamarin是否有类似的东西,所以我们可以将数据绑定到UI?

1 个答案:

答案 0 :(得分:1)

不幸的是,MVVMLight代码库对可观察集合的要求是IList<T>,这比Realm提供的API更具限制性。好消息是它是开源的,因此您可以轻松地进行必要的修改以使其工作。您需要ObservableTableViewControllerObservableTableViewSource。然后,只需将所有DataSource属性/字段修改为IReadOnlyList<T>而不是IList<T>。然后可以将GetController扩展方法修改为:

public static ObservableTableViewController<TItem> GetController<TItem>(
    this IReadOnlyList<TItem> collection,
    Func<NSString, UITableViewCell> createCellDelegate,
    Action<UITableViewCell, TItem, NSIndexPath> bindCellDelegate,
    string reuseId = null)
{
    return new ObservableTableViewController<TItem>
    {
        DataSource = collection,
        CreateCellDelegate = createCellDelegate,
        BindCellDelegate = bindCellDelegate,
        ReuseId = reuseId,
    };
}