나는 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>
그래서 난 내 뷰 모델에
public ObservableCollection<Product> Products
관찰 가능한 컬렉션 ItemsSource 바인딩거야 잘 생각하지만 지금은 문제가있다는 UnitsToBuy은하지 않는 제품에 뭔가이며,하지 않습니다 제품에 속한다. 나는 이런 종류의 시나리오를 다루는 깨끗한 방법을 찾는 방법에 대해 열중하고 있습니다. 내가 그 목록에있는 항목의 개수를 가질 수 있다고 가정하십시오.
감사합니다.
UnitsToBuy는 다른 Model 객체의 일부입니까? 아니면 모두 단독입니까? 내 질문에 당신이 두 모델을 함께 병합하려고하는지 여부 같아요. – avanek
@avanek 잘 다른 모델에서 사용됩니다, SubscribedProduct 모델/테이블을 말하십시오 – GriffinHeart