Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 124829
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T05:03:44+00:00 2026-05-11T05:03:44+00:00

Background: I’m creating a WPF app using MVVM, and using a DI container to

  • 0

Background: I’m creating a WPF app using MVVM, and using a DI container to build my ViewModels

My App.xaml looks like this:

<Application x:Class='WpfApp.App'     ...xmlns etc...     StartupUri='MainWindow.xaml'>     <Application.Resources>         <app:ServiceLocator x:Key='serviceLocator' />     </Application.Resources> </Application> 

MainWindow.xaml looks like this:

<Window x:Class='CompositeMefWpfApp.MainWindow'     ...xmlns etc... >     <Control.DataContext>         <Binding Path='MainWindowViewModel' Source='{StaticResource serviceLocator}' />     </Control.DataContext> 

Now, this all works fine, but the StartupUri is hardcoded into the XAML, which I don’t want.
Following guidance of several blogposts and articles I found, I removed the StartupUri, and tried to create the MainWindow by hooking OnStartup in App.xaml.cs, like this:

protected override void OnStartup( StartupEventArgs e ) {     base.OnStartup(e);     new MainWindow().Show(); } 

The problem is, the app crashes when trying to show the window, with this exception:

Cannot find resource named ‘{serviceLocator}’. Resource names are case sensitive. Error at object ‘System.Windows.Data.Binding’ in markup file ‘WpfApp;component/mainwindow.xaml’ Line 8 Position 45.

As far as I can tell, the <Application.Resources> section is simply not being read out of the xaml file. I can put some code in the OnStartup to add the resource programatically like this:

Resources.BeginInit(); Resources.Add('serviceLocator', new ServiceLocator()); Resources.EndInit(); 

However that’s an ugly hack, and doesn’t help me if I wanted to put something else in the app.xaml file later on 🙁

Should I be hooking some other event? Is there a way around this?

  • 1 1 Answer
  • 1 View
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T05:03:45+00:00Added an answer on May 11, 2026 at 5:03 am

    Rather than overriding OnStartup, try using an event instead:

    <Application x:Class='My.App'     xmlns='...'     Startup='Application_Startup'     ShutdownMode='OnExplicitShutdown'>         <Application.Resources>             <app:ServiceLocator x:Key='serviceLocator' />         </Application.Resources>     </Application> 

    Code behind:

    public partial class App : Application {     public App()     { }     private void Application_Startup(object sender, StartupEventArgs e)     {         // TODO: Parse commandline arguments and other startup work          new MainWindow().Show();     } } 
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 114k
  • Answers 114k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer First, copy a backup of your MDF file in case… May 11, 2026 at 10:15 pm
  • Editorial Team
    Editorial Team added an answer If you make a request to your app does the… May 11, 2026 at 10:15 pm
  • Editorial Team
    Editorial Team added an answer Create a separate project for unit tests, especially if you… May 11, 2026 at 10:15 pm

Related Questions

Background: I have a little video playing app with a UI inspired by the
Background: I need to reserve an amount of memory below 0xA0000 prior to my
Background I am writing and using a very simple CGI-based (Perl) content management tool
Background I have a massive db for a SharePoint site collection. It is 130GB
Background I am trying to create a copy of a business object I have

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.