我希望自己实现ViewModelLocator.所以我实现了世界上最简单的应用程序.我做了本教程中的所有内容.但我仍然得到一个例外:
发生了XamlParseException
抛出异常:PresentationFramework.dll中的'System.Windows.Markup.XamlParseException'
附加信息:'为'System.Windows.StaticResourceExtension'提供价值引发了异常.行号'8'和行位置'9'.
这是这一行:
DataContext="{Binding MainWindowViewModel, Source={StaticResource ViewModelLocator}}">
Run Code Online (Sandbox Code Playgroud)
这是代码:
App.xaml中
<Application x:Class="ViewModelLocatorDemo.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:viewModelLocatorDemo="clr-namespace:ViewModelLocatorDemo">
<Application.Resources>
<viewModelLocatorDemo:ViewModelLocator x:Key="ViewModelLocator"/>
</Application.Resources>
</Application>
Run Code Online (Sandbox Code Playgroud)
App.xaml.cs
namespace ViewModelLocatorDemo
{
using System.Windows;
using ViewModelLocatorDemo.Views;
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
MainWindow mainWindow = new MainWindow();
mainWindow.Show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
ViewModelLocator.cs
namespace ViewModelLocatorDemo
{
using ViewModels;
public class ViewModelLocator
{
public MainWindowViewModel MainWindowViewModel
{
get { return new MainWindowViewModel(); }
}
}
}
Run Code Online (Sandbox Code Playgroud)
MainWindow.xaml
<Window x:Class="ViewModelLocatorDemo.Views.MainWindow" …Run Code Online (Sandbox Code Playgroud)