1.创建 ViewModelLocator 类
右键点击 ViewModel 文件夹,选择 添加 > 类,命名为 ViewModelLocator.cs。
在 ViewModelLocator.cs 文件中,添加以下代码:

using CommonServiceLocator;
using GalaSoft.MvvmLight.Ioc;

namespace VideoWatermark_Premium.ViewModel
{
    public class ViewModelLocator
    {
        public ViewModelLocator()
        {
            ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

            // Register ViewModels
            SimpleIoc.Default.Register<MainWindowViewModel>();
        }

        public MainWindowViewModel MainWindowViewModel
        {
            get { return ServiceLocator.Current.GetInstance<MainWindowViewModel>(); }
        }

        public static void Cleanup()
        {
            // TODO Clear the ViewModels
        }
    }
}

2.修改 App.xaml 文件
打开 App.xaml 文件。
修改 App.xaml 文件,添加 ViewModelLocator 资源:

<Application x:Class="VideoWatermark_Premium.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:vm="clr-namespace:VideoWatermark_Premium.ViewModel"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- HandyControl 主题-->
                <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/SkinDefault.xaml"/>
                <ResourceDictionary Source="pack://application:,,,/HandyControl;component/Themes/Theme.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <!-- ViewModelLocator -->
            <vm:ViewModelLocator x:Key="Locator" />
        </ResourceDictionary>
    </Application.Resources>
</Application>

3.设置 MainWindow 的 DataContext
打开 MainWindow.xaml 文件。
设置 DataContext,使其绑定到 ViewModelLocator 的 MainWindowViewModel 属性:

<Window x:Class="VideoWatermark_Premium.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        DataContext="{Binding Source={StaticResource Locator}, Path=MainWindowViewModel}"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Text="{Binding WelcomeMessage}" VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="24"/>
    </Grid>
</Window>

标签: none

添加新评论