Есть вот такое свойство для MainWindow
internal class MainWindowViewModel : ViewModel
{
#region Статус состояния
private string _Status;
/// <summary>
/// состояние программы
/// </summary>
public string Status
{
get => _Status;
set=>Set(ref _Status, value);
}
#endregion
}
которое привязано к textbox
<TextBlock x:Name="statusTxt" VerticalAlignment="Top" HorizontalAlignment="Left" Width="630" Height="50" Text="{Binding Status}" />
Собственно структура
и сам класс viewmodel
internal abstract class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public virtual void OnPropertyChanged([CallerMemberName] string PropertyName=null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(PropertyName));
}
protected virtual bool Set<T>(ref T field, T value, [CallerMemberName] string PropertyName = null)
{
if(Equals(field, value)) return false;
field = value;
OnPropertyChanged(PropertyName);
return true;
}
}
Как я могу поменять значение свойства из класса никак не связанного с mainwindow?
В MainWindowViewModel создал следующую функцию
public void sta(MainWindowViewModel mv,string ss)
{
mv._Status= ss;
}
и вызываю ее из другого класса
MainWindowViewModel mwvm = new MainWindowViewModel();
mwvm.sta(mwvm, "new status");

var second = new SecondClass(this);...class SecondClass { public SecondClass(MainViewModel mainVm){ mainVm.Status="New Status"; } }, верно? Ну так почему тут у вас возникли трудности? – EvgeniyZ Sep 11 '22 at 09:32Если один экземпляр класса, также какой пример кода показал?new SecondClass(this)иpublic SecondClass(MainViewModel mainVm){ mainVm.Status="New Status"; }, то есть, передача объекта идет через конструктор класса. А теперь смотрим на ваш код, что видим?MainWindowViewModel mwvm = new MainWindowViewModel();(создать новый класс),mwvm.sta(mwvm, "new status");(вызвать из этого НОВОГО класса метод). Тут не MVVM и WPF, тут простая работа с классами. Почитайте это. – EvgeniyZ Sep 11 '22 at 15:01