Я использую mvvm для разработки приложения RIA service sl4, и мне, кажется, что-то не хватает.
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 с коллекцией Observable на моей ViewModel
public ObservableCollection<Product> Products
Но теперь у меня есть проблема, UnitsToBuy - это то, чего нет в Продукте, и оно не принадлежит продукту. Я изо всех сил пытаюсь найти чистый способ справиться с подобными сценариями. Предположим, у меня может быть любое количество элементов в этом списке.
Спасибо.