By lack of any response on the developer's GitHub I will repeat my question here. I hope someone can help me in some way.
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!