Skip to content
This repository was archived by the owner on Sep 20, 2021. It is now read-only.
This repository was archived by the owner on Sep 20, 2021. It is now read-only.

View not updated when setting properties from within RelayCommand execution #106

@a-einstein

Description

@a-einstein

This is the first time I am using MvvmLight, so I hope I am not overlooking something obvious.

In my WPF ViewModel I have something like:

      private ICommand readFileCommand;
      public ICommand ReadFileCommand => readFileCommand ?? (readFileCommand = new RelayCommand(ReadFile));

      private void ReadFile()
      {
            FileMessage = "Message.";
      }

      private string fileMessage;
      public string FileMessage
      {
           get { return fileMessage; }
           set
           {
               //Set(ref fileMessage, value);
  
               fileMessage = value;
               RaisePropertyChanged();
           }
       }

I have a couple of problems with it.

  • Main problem is that setting a property like FileMessage from within a method like ReadFile() does not result in an update of the view until ReadFile is completed.
  • There is a difference between using RaisePropertyChanged() which succeeds at that moment, and using Set() which does nothing at all. Though the latter did work outside such a method.
  • The problem extends to other elements like a DataGrid on a DataView.

In wondered if the called methods should be asynchronous, but that does not seem logical. I have not tried that yet as that does not really fit into what I want to achieve.

So what is happening? Am I overlooking something? Is this a limitation of the framework? Or is this a bug?

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions