我使用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?
答案 0 :(得分:1)
不幸的是,MVVMLight代码库对可观察集合的要求是IList<T>
,这比Realm提供的API更具限制性。好消息是它是开源的,因此您可以轻松地进行必要的修改以使其工作。您需要ObservableTableViewController
和ObservableTableViewSource
。然后,只需将所有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,
};
}