WP8 列表框加载的 MVVM

本文关键字:MVVM 加载 列表 WP8 | 更新日期: 2023-09-27 17:55:35

我正在使用MVVM patern(Caliburn.Micro)制作WP8应用程序。

我正在使用名为程序列表的列表框,我想在加载时执行某些操作。

<ListBox Name="ProgamsList" ItemsSource="{Binding ProgramsList}" HorizontalAlignment="Stretch" FontFamily="Portable User Interface" Loaded="">

不使用 MVVM 父项时,我可以使用自动生成的事件处理程序。

如何使用 MVVM 父子以正确的方式执行此操作?

WP8 列表框加载的 MVVM

    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras"
<ListBox Name="ProgamsList" ItemsSource="{Binding ProgramsList}" HorizontalAlignment="Stretch" FontFamily="Portable User Interface" >
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
            <cmd:EventToCommand Command="{Binding LoadedCommand}" />
        </i:EventTrigger>        
    </i:Interaction.Triggers>
</ListBox>

    public RelayCommand LoadedCommand
            {
                get;
                private set;
            }
            /// <summary>
            /// Initializes a new instance of the SplashScreenViewModel class.
            /// </summary>
            public SplashScreenViewModel()
            {
                LoadedCommand = new RelayCommand(toDoSomehing);
            }
    private void toDoSomething(){
    }

您可以使用命令从 ViewModel 公开逻辑,然后使用行为,例如:http://metroeventtocommand.codeplex.com/

如果这不符合您的需求,则始终可以使用事件处理程序并从那里调用命令。