如何将数据从viewmodel传递到视图

时间:2014-06-23 22:53:18

标签: c# silverlight mvvm-light

我有一个Windows Phone 8.1 silverlight应用程序,我正在使用MVVMLight工具包。 我有三个ViewModel:Main,PivotItem和Item。 在MainViewModel中,我有一个PivotItem的ObservableCollection,在PivotItemViewModel中有一个ItemViewModel的ObservableCollection,最后在ItemViewModel中我有一个项目的属性。

这是MainPage.xaml:

<phone:Pivot Title="{Binding Title}" ItemsSource="{Binding PivotItemViewModels}">
            <phone:Pivot.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Header}" />
                </DataTemplate>
            </phone:Pivot.HeaderTemplate>
            <phone:Pivot.ItemTemplate>
                <DataTemplate>
                    <phone:LongListSelector x:Name="LongListSelector" ItemsSource="{Binding ItemViewModels}">
                        <phone:LongListSelector.ItemTemplate>
                            <DataTemplate>
                                <StackPanel>
                                    <TextBlock Text="{Binding Tipus}" />
                                    <TextBlock Text="{Binding Megjegyzes}" />
                                </StackPanel>
                            </DataTemplate>
                        </phone:LongListSelector.ItemTemplate>
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="Tap">
                                <commands:EventToCommand Command="{Binding SelectedCommand,
                                                                           Mode=OneWay}"
                                                         CommandParameter="{Binding Path=SelectedItem,
                                                                                    ElementName=LongListSelector}"
                                                         PassEventArgsToCommand="False" />
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </phone:LongListSelector>
                </DataTemplate>
            </phone:Pivot.ItemTemplate>
        </phone:Pivot>

对于LongListSelector Tap事件,我想将所选项目传递给我的EditView。

这是我在PivotItemViewModel中的SelectedCommand:

public RelayCommand<ItemViewModel> SelectedCommand { get; set; }

private void Edit(ItemViewModel item)
        {

            ApplicationController.Default.NavigateTo(ViewType.Edit);            
        }

public PivotItemViewModel()
        {
            SelectedCommand = new RelayCommand<ItemViewModel>(Edit);
        }

我的第一个问题是我应该使用哪个ViewModel,PivotItemViemModel或ItemViewModel用于EditView的datacontext?如何将所选项目传递给视图?

0 个答案:

没有答案