小编tob*_*wak的帖子

实现自己的ViewModelLocator

我希望自己实现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)

.net c# wpf xaml viewmodellocator

3
推荐指数
1
解决办法
880
查看次数

标签 统计

.net ×1

c# ×1

viewmodellocator ×1

wpf ×1

xaml ×1