Я разрабатываю приложение wpf, в котором я взаимодействую с огромной сеткой кнопок (созданной с помощью ItemsControl).
Когда я нажимаю одну кнопку, приложение отображает новое окно. Это новое окно отображает UserControl. Я использую сервис для отображения нового окна:
public class WindowService
{
#region Variable
#endregion Variable
#region Constructor
public WindowService()
{
}
#endregion Constructor
#region Properties
#endregion Properties
#region Public Method
public void ShowWindow(object viewModel)
{
var win = new WindowView();
//win.Content = viewModel; <-- not the best way, go to see in comment why (thanks @Ndubuisi Jr)
win.DataContext = viewModel;
win.Show();
}
#endregion Public Method
#region Private Method
#endregion Private Method
}
И код для вызова этого метода:
public void display_InfoPoste(object commandParameter)
{
windowPoste = new WindowService();
windowPoste.ShowWindowCommandParameter(new InfoPosteViewModel(commandParameter));
}
Нет проблем с этим. (Отображаемое окно является только содержимым для получения другого UserControl)
Теперь у меня есть кнопка «Закрыть» на пользовательском элементе управления, но я не вижу способа закрыть окно. Я работаю с паттерном MVVM, поэтому пока не знаю, как это сделать.
Не могли бы вы мне помочь? (Я могу поделиться с вами скриншотом, если вам нужно)
Большое спасибо
Изображение: часть древовидности проекта
Просто ниже запрошенный код "InfoPosteViewModel.cs"
#region Variable
private string _commandParameter;
#endregion Variable
#region Constructor
public InfoPosteViewModel()
{
//FermerCommand = new RelayCommand(Action_FermerWindow);
}
public InfoPosteViewModel(object commandParameter)
{
SelectedViewModel = new InfoPosteViewModel();
_commandParameter = (string)commandParameter;
ID = _commandParameter;
}
#endregion Constructor
#region Properties
public ICommand FermerCommand { get; set; }
private static string _id;
public string ID
{
get { return _id; }
set
{
_id = value;
OnPropertyChanged("ID");
}
}
private object _selectedViewModel;
public object SelectedViewModel
{
get
{
return _selectedViewModel;
}
set
{
_selectedViewModel = value;
OnPropertyChanged("SelectedViewModel");
}
}
#endregion Properties
#region Public Method
public void Action_FermerWindow(object commandParameter)
{
}
#endregion Public Method