我正在做一些我從未嘗試過的事情。我正在嘗試創建動態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