我正在做一些我从未尝试过的事情。我正在尝试创建动态UI并将其绑定到动态模型。换句话说,我的Web服务将发回我的UI的一个小的元数据描述,并将原始数据绑定到它。因此,在构建时,我不知道我将构建的UI是什么,我不知道我的模型会是什么。如果不是不可能的话,将它们绑定在一起似乎非常困难没有ViewModel的数据绑定
MVX让我可以直接绑定UI的模型,而它作为一个MvxViewModel。但是,如果我直接绑定到由Web服务返回的Model,则我失去了RaisePropertyChanged()的功能,因为它只来自MvxViewModel。
通常情况下,我会写一个包装模型一个ViewModel,并已全部包裹制定者调用RaisePropertyChanged()。但是,在这种情况下,我的模型是动态的,所以我不能在编译时用ViewModel包装它,因为我直到运行时才知道它是什么。
有一些很棒的技巧我可以用它来构造一个视图模型,它可以包含任何C#模型类,并发送属性更改事件,不知道是什么属性的模型类具有直到运行时?
我刚刚发现的DLR和这似乎是完美的DynamicObject,但由于苹果的限制,它不会在Xamarin.iOS工作。
我有类似的要求。我将我的动态数据存储为JSON对象。对于数据绑定,我将其转换为处理属性更改通知的ObservableDictionary。在视图中,我创建了一个绑定集并手动将我的视图控件绑定到字典。它工作得很好。我不在我的电脑,但我明天会发布一个样本。 – Kiliman
我认为如果问题中存在一些具体代码 - 实际查看/实验的内容,则可以更轻松地查看此问题。目前我不完全确定什么改变了你的(视图)模型中的值 - 它总是绑定UI控件,还是其他东西? (我不确定是否知道您的更改通知将生成在哪里) – Stuart
WPF也尊重[TypeDescriptors](https://msdn.microsoft.com/en-us/library/system.componentmodel.typedescriptor(v = vs。 110).aspx),因此您可以根据服务器的数据动态创建类型描述符。不知道这些邪恶的ios overlords是否会阻止反射,tho。 – Will