MVVMLightのViewModelLocator
は静的でもシングルトンでもありません。この時点で
<Application x:Class="Project.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
d1p1:Ignorable="d"
xmlns:d1p1="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:Acoustix.ViewModel">
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</ResourceDictionary>
</Application.Resources>
</Application>
、ViewModelLocator
クラスのコンストラクタが呼び出されると、あなたのビューでインスタンスを使用することができます:
<Window x:Class="Project.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
DataContext="{Binding Main, Source={StaticResource Locator}}" Icon="Assets/app.ico">
<!-- ... -->
</Window>
ではありませんあなたは
App.xaml
があなたのグローバルインスタンスを登録するためですそれはシングルトンですか? –@MikeEason:いいえ、5.3現在。 – dotNET
それは彼らがそれを実装した方法なので。人々が静的から離れている理由はたくさんあります。テスト作業を容易にするためにデカップリングを行うことが大きな課題です。本当に知りたければ、MVVM Lightの開発者に尋ねる必要があります。 – Will