이것은 caliburn 질문보다 MVVM 질문에 더 가깝지만 caliburn을 사용하여 수행 할 수있는 방법과 관련이 있습니다.ViewModel 또는 Model 바인딩과 Caliburn.Micro
Sliverlight/WP7 개발에 익숙하지 않으므로 자신을 충분히 설명하지 못하면 알려 주시기 바랍니다.
필자는 caliburn.micro를 phonecontainer/simplecontainer 및 viewmodels 등의 WP7 앱에 올바르게 연결했습니다. 내가 겪고있는 문제는 모델 모음을 화면에 제대로 바인딩하는 방법입니다.
예를 들어나는 다음과 같은 모델이 있습니다
SummaryItem
{
int Id
string Name
string Description
}
그리고 해당 뷰 모델 :
SummaryViewModel : Conductor<IScreen>.Collection.OneActive
{
ObservableCollection<SummaryItem> SummaryItems;
OnInitialize()
{
SummaryItems = // REST api call to load items
}
}
그리고보기 :
<ListBox x:Name="SummaryItems" Height="617" HorizontalAlignment="Left" VerticalAlignment="Top" Width="468" Background="Transparent">
<ListBox.ItemTemplate>
<DataTemplate>
<Button Width="460" Height="120">
<Button.Content>
<StackPanel Orientation="Horizontal" Height="120" Width="400">
<TextBlock Text="{Binding Id}" Height="120" FontSize="40" Width="350" />
<TextBlock Text="{Binding Name}" Height="120" FontSize="40" Width="350" />
<TextBlock Text="{Binding Description}" FontSize="40" Width="50" TextAlignment="Right" />
</StackPanel>
</Button.Content>
</Button>
<ContentControl cal:View.Model="{Binding}" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
내 질문은, 적절한 무엇을 way in silverlight/caliburn을 사용하여 모델 객체 모음을 탐색에 사용할보기에 바인딩합니다. 보시다시피, 누군가가 버튼 중 하나를 클릭하면 다음 뷰 모델에서 다른 아이템 API 데이터를 가져 와서 화면에 표시합니다. 그러나 해당 목록 코드를 사용하여 항목을 화면에 표시 할 수 없습니다. ItemsSource = SummaryItems를 사용해 보았는데 그 방법이 효과적 이었지만 어떻게 샘플이 엉망이 됐는지는 알 수 없습니다. 샘플에서는 Items 속성이 viewmodel에 사용되고 모델 개체와 어떻게 통합되는지 잘 모르겠습니다.
아마도 이러한 상황에서 바인딩이 어떻게 작동하는지, 그리고 캘리브레이션이 어떻게 통합되는지 명확하지 않습니다. 누구든지 올바른 방향으로 나를 가리킬 수 있을까요?
도움을 주시면 감사하겠습니다. 감사!
숀