我一直在使用mvvm來開發一個RIA服務sl4應用程序,我似乎錯過了一些東西。MVVM數據模板和非直接數據映射
當您的數據以預期的格式進行編輯或數據對象「符合視圖」(網格,列表等)時,MVVM和數據綁定可以很好地工作。但是當你的數據不直接映射時會發生什麼?
我的例子
可以說我有一個產品表,這個定義的產品其價格和選項。我有一個訂閱的產品表,將鏈接產品和客戶端,也有關於何時訂閱結束等數據...
因此,當我開始工作我的「購物清單」的觀點我做到了這一點:
<ListBox x:Name="ShopList" Grid.Row="0" ItemsSource="{Binding Products}">
<DataTemplate>
<StackPanel Orientation="Horizontal">
<sdk:Label Content="{Binding ModuleName}" />
<sdk:Label Content="{Binding DateStart, Converter={StaticResource gridDateFormatter}}" />
<sdk:Label Content="{Binding DateEnd, Converter={StaticResource gridDateFormatter}}" />
<telerik:RadMaskedTextBox MaskedText="{Binding UnitsToBuy}" />
<sdk:Label Content="{Binding UnitStep}" />
<sdk:Label Content="{Binding TotalPrice}" />
</StackPanel>
</DataTemplate>
</ListBox>
所以,我想好了,我有觀察集合要綁定的ItemsSource我的視圖模型
public ObservableCollection<Product> Products
但現在我有一個問題,UnitsToBuy東西不在產品,而不會屬於產品。我正在努力尋找一種乾淨的方式來處理這種情況。假設我可以在該列表中擁有任意數量的項目。
謝謝。
UnitsToBuy是另一個Model對象的一部分還是全部是它自己?我想我的問題是你是否試圖合併兩個模型。 – avanek
@avanek以及它將在另一個模型中使用,可以說SubscribedProduct模型/表 – GriffinHeart