У меня много проблем с моей MVVM, я не могу передать какие-либо реквизиты, или если я все еще передаю их из ViewModel в другую ViewModel, пользовательский интерфейс все равно не обновляется.
Например, здесь:
Мои файлы xaml:
namespace InteWPF.ViewModel.Screens
{
public class AEViewModel : ObservableObject
{
// Variables
private PlotViewModel _plotViewModel { get; set; }
private bool _isLocked;
private int _scanWindow;
private int _intesityThreshold;
private Visibility _goBackButtonVisibility = Visibility.Collapsed;
private Visibility _lockButtonVisibility = Visibility.Visible;
public Visibility GoBackButtonVisibility
{
get => _goBackButtonVisibility;
set
{
_goBackButtonVisibility = value;
OnPropertyChanged();
}
}
public Visibility LockButtonVisibility
{
get => _lockButtonVisibility;
set
{
_lockButtonVisibility = value;
OnPropertyChanged();
}
}
public AEViewModel ()
{
_plotViewModel = new PlotViewModel();
LockCommand = new RelayCommand(ExecuteLockCommand);
GoBackCommand = new RelayCommand(ExecuteGoBackCommand);
}
public int ScanWindow
{
get => _scanWindow;
set
{
if (_scanWindow != value)
{
_scanWindow = value;
OnPropertyChanged();
}
}
}
public int IntesityThreshold
{
get => _intesityThreshold;
set
{
if (_intesityThreshold != value)
{
_intesityThreshold = value;
OnPropertyChanged();
}
}
}
//ICommand
public ICommand LockCommand { get; }
public ICommand GoBackCommand { get; }
private void ExecuteLockCommand(object parameter)
{
_plotViewModel.OnLockChanged(_scanWindow, _intesityThreshold);
_plotViewModel.IsSpectralPlotVisible = Visibility.Collapsed;
_plotViewModel.IsSpectralAEPlotVisible = Visibility.Visible;
GoBackButtonVisibility = Visibility.Visible;
LockButtonVisibility = Visibility.Collapsed;
}
private void ExecuteGoBackCommand(object parameter)
{
_plotViewModel.OnGoBackChanged();
_plotViewModel.IsSpectralPlotVisible = Visibility.Visible;
_plotViewModel.IsSpectralAEPlotVisible = Visibility.Collapsed;
GoBackButtonVisibility = Visibility.Collapsed;
LockButtonVisibility = Visibility.Visible;
}
}
}
Я не могу скрыть — сверните мой второй график, я хочу, чтобы, когда пользователь нажимает кнопку блокировки, чтобы скрыть первый график и показать второй, и если пользователь нажмет кнопку «Назад», чтобы сделать это наоборот.
Я думаю, что это проблема с моей архитектурой MVVM или что-то не так с асинхронностью? Потому что, когда я также пытаюсь передать NearestPoint с помощью функции MyPlotModel_MouseDown, я не могу получить значение для функции OnLockChanged, чтобы использовать ее.
Любая помощь будет оценена по достоинству. Спасибо!
У меня много проблем с моей MVVM, я не могу передать какие-либо реквизиты, или если я все еще передаю их из ViewModel в другую ViewModel, пользовательский интерфейс все равно не обновляется. Например, здесь: Мои файлы xaml: [code]
[/code] [code]
[/code] Мои классы ViewModel: [code]namespace InteWPF.ViewModel.Components { public class PlotViewModel : ObservableObject, IDisposable { // ====================== About Plot ====================== private DispatcherTimer _timer; private bool _isTracking; private bool _isPaused; private bool _locked = false; private bool _stopAll = false; private bool _isLocked = false; private DataPoint _nearestPoint = new DataPoint(0,0); private DataPoint near = new DataPoint(0, 0); private ScreenPoint mouseDownPoint; private int waveLengthIndex; private bool mouseWavelengthClick = false;
public PlotViewModel() { SpectralPlotModel = new PlotModel { Title = "Sweep", Background = OxyColors.Transparent, TextColor = OxyColors.White, PlotAreaBorderColor = OxyColors.White };
[/code] [code]namespace InteWPF.ViewModel.Screens { public class AEViewModel : ObservableObject { // Variables private PlotViewModel _plotViewModel { get; set; }
private bool _isLocked; private int _scanWindow; private int _intesityThreshold;
private Visibility _goBackButtonVisibility = Visibility.Collapsed; private Visibility _lockButtonVisibility = Visibility.Visible; public Visibility GoBackButtonVisibility { get => _goBackButtonVisibility; set { _goBackButtonVisibility = value; OnPropertyChanged(); } } public Visibility LockButtonVisibility { get => _lockButtonVisibility; set { _lockButtonVisibility = value; OnPropertyChanged(); } }
public AEViewModel () { _plotViewModel = new PlotViewModel(); LockCommand = new RelayCommand(ExecuteLockCommand); GoBackCommand = new RelayCommand(ExecuteGoBackCommand); }
public int ScanWindow { get => _scanWindow; set { if (_scanWindow != value) { _scanWindow = value; OnPropertyChanged(); } } } public int IntesityThreshold { get => _intesityThreshold; set { if (_intesityThreshold != value) { _intesityThreshold = value; OnPropertyChanged(); } } }
//ICommand public ICommand LockCommand { get; } public ICommand GoBackCommand { get; } private void ExecuteLockCommand(object parameter) { _plotViewModel.OnLockChanged(_scanWindow, _intesityThreshold); _plotViewModel.IsSpectralPlotVisible = Visibility.Collapsed; _plotViewModel.IsSpectralAEPlotVisible = Visibility.Visible; GoBackButtonVisibility = Visibility.Visible; LockButtonVisibility = Visibility.Collapsed; } private void ExecuteGoBackCommand(object parameter) { _plotViewModel.OnGoBackChanged(); _plotViewModel.IsSpectralPlotVisible = Visibility.Visible; _plotViewModel.IsSpectralAEPlotVisible = Visibility.Collapsed; GoBackButtonVisibility = Visibility.Collapsed; LockButtonVisibility = Visibility.Visible; } } } [/code] Я не могу скрыть — сверните мой второй график, я хочу, чтобы, когда пользователь нажимает кнопку блокировки, чтобы скрыть первый график и показать второй, и если пользователь нажмет кнопку «Назад», чтобы сделать это наоборот. Я думаю, что это проблема с моей архитектурой MVVM или что-то не так с асинхронностью? Потому что, когда я также пытаюсь передать NearestPoint с помощью функции MyPlotModel_MouseDown, я не могу получить значение для функции OnLockChanged, чтобы использовать ее. Любая помощь будет оценена по достоинству. Спасибо!
У меня много проблем с моей MVVM, я не могу передать какие-либо реквизиты, или если я все еще передаю их из ViewModel в другую ViewModel, пользовательский интерфейс все равно не обновляется.
Например, здесь:
Мои файлы xaml:...
У меня много проблем с моей MVVM, я не могу передать какие-либо реквизиты, или если я все еще передаю их из ViewModel в другую ViewModel, пользовательский интерфейс все равно не обновляется.
Например, здесь:
Мои файлы xaml:...
У меня много проблем с моей MVVM, я не могу передать какие-либо реквизиты, или если я все еще передаю их из ViewModel в другую ViewModel, пользовательский интерфейс все равно не обновляется.
Например, здесь:
Мои файлы xaml:
У меня много проблем с моей MVVM, я не могу передать какие-либо реквизиты, или если я все еще передаю их из ViewModel в другую ViewModel, пользовательский интерфейс все равно не обновляется.
Например, здесь:
Мои файлы xaml:
У меня есть много проблем, касающихся моих MVVM, я не могу передать никаких реквизита или, если я все еще передаю их из ViewModel в другую ViewModel, это все еще не обновляя пользовательский интерфейс.