У меня есть приложение WPF, а вот структура приложения:
Просмотры
MainWindow.xaml, ABC.xaml (все с файлами .cs)
ViewModels
MainWindowVM.cs, ABCVM.cs
У меня есть кнопка в MainWindow.xaml (привязана к MainWindowVM.cs ), которая вызывает функцию SampleFunction () в MainWindowVM.cs , когда щелкнув, SampleFunction () затем создаст новый экземпляр ABC.xaml (привязанный к ABCVM.cs ) и откроет новое окно ABC.xaml , используя Функция Show ().
Как я могу убедиться, что нажатие кнопки в MainWindow не откроет другое новое окно ABC.xaml , когда старое окно все еще там, или не создаст другой новый экземпляр ABC. XAML
MainWindow.xaml.cs
public partial class MainWindow : Window
{
/*...Some other codes...*/
private MainWindowVM _VM = new MainWindowVM();
public MainWindowVM MainWindowVM
{
get { return _VM; }
set { _VM= value; }
}
public MainWindow()
{
InitializeComponent();
this.DataContext = MainWindowVM;
}
private void SomeControl_MouseLeftButtonUp(object sender,MouseButtonEventArgs e)
{
MainWindowVM.SampleFunction();
}
}
MainWindowVM.cs
public class MainWindowVM
{
/*...Some other codes...*/
public void SampleFunction()
{
ABC abc= new ABC();
abc.Show();
}
}
ABC.xaml.cs
public partial class ABC: Window
{
/*...Some other codes...*/
private static ABCVM _abcVM= new ABCVM();
public ABCVM ABCVM { get { return _abcVM; } set { _abcVM = value; } }
public ABC()
{
InitializeComponent();
this.DataContext = ABCVM;
}
}