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

  • SEARCH
  • Home
  • 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 7500289
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T20:07:44+00:00 2026-05-29T20:07:44+00:00

I use MVVM pattern in my multithreading WPF app. Now in the model I

  • 0

I use MVVM pattern in my multithreading WPF app.

Now in the model I have (I skipped the obvious implementation of INotifyPropertyChanged interface to make it more clear):

public class ShallowModel : INotifyPropertyChanged
{
  private string _dbState;
  public string DbState
  {
     get { return _dbState; }
     set 
     { 
       _dbState = value;
       OnPropertyChanged("DbState") // ofc there is implementation of this
     }
  }
  private InsideObject _inObject;
  public InsideObject InObject
  {
     get { return _inObject; }
     set 
     { 
       _inObject = value;
       OnPropertyChanged("InObject") 
     }
  }
}   

public class InsideModel : INotifyPropertyChanged
{
  private string _actState;
  public string ActState
  {
     get { return _actState; }
     set 
     { 
       _actState= value;
       OnPropertyChanged("ActState")
     }
  }
}

Say I have TextBlocks on the View:

<TextBlock Text={Binding ActObjectState}/>
<TextBlock Text={Binding DbState}/>

Now there’s a part of problematic ViewModel:

public class ViewModel : INotifyPropertyChanged
{
  private ShallowModel _model;
  public string ActObjectState
  {
     get 
     { 
       if(_model.InObject != null)
         return _model.InObject.ActState; 
       else
         return null;
     }
  }
  public string DbState
  {
     get 
     { 
       return _model.DbState;
     }
  }
}

The problem is that ActObjectState and DbState are not being updated when background thread is updating properties of ShallowModel and/or InsideModel. My questions are:

  1. Should I add Model public property to ViewModel and bind view like {Binding Path=Model.DbState}? I think it disrupts the MVVM idea – View shouldnt know about Model.

  2. InObject in ShallowModel is created by a new thread after User click button on UI. Therefore when ViewModel is created InObject is null. Somehow – after it’s created by the thread – ActObjectState is not updated. How to make it work? Make binding like {Binding Path=Model.InObject.ActState}? This implies the need of having knowledge about Model by UI designer.

Thx, sry for my english

  • 1 1 Answer
  • 0 Views
  • 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. Editorial Team
    Editorial Team
    2026-05-29T20:07:46+00:00Added an answer on May 29, 2026 at 8:07 pm

    i would take your suggestion 1. its the easiest way and i dont see any violation of the MVVM pattern.

    if this not works for you – you have to put the view related logic in your viewmodel. so maybe its necessary that the viewmodel listen to the changes of the model and rethrow(with the view related logic) these changes to the view.

    when working with threads be aware of dispatcher stuff, but i think you know that

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I use the MVVM-pattern in my WPF-application. Now I show a dialog with my
I am attempting to use an MVVM-ish approach to my WPF development. I have
I want use MVVM design pattern in WPF and Silverlight Application. Where can i
I'm writing an application in WPF using the MVVM-pattern and will really often use
I am coding a WPF application using MVVM pattern. I don't need to have
when using mvvm pattern, when we have lists we use ObservableCollection<>. my question is
I'm using the MVVM pattern and I have a POCO (in my Model) with
I have wholly adopted the MVVM pattern for our silverlight app. However, some of
I am building a WPF app that is based on the MVVM pattern (using
I'm taking an vanilla WPF application and converting it to use the MVVM pattern.

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.