ورود

View Full Version : چه طوری باید فرم ها را در MVVM بست و مجددا باز کرد



NasimBamdad
چهارشنبه 23 فروردین 1402, 03:12 صبح
سلام وقت بخیر
مشکلی که بنده در MVVM دارم اینه که در WPF این اجازه که یک فرمی که بسته شده رو نمیشه دوباره باز کرد ، مگر نمونه جدیدی ازش بسازیم.

چه طور میشه یه فرم رو زمانی که کاربر می بنده ( به هر روشی ) از بستن اون جلوگیری و فقط اون رو hide کنیم

در رویداد Closing فرم ها کمک گرفتم با قطعه کد زیر ، ولی نتیجه ای نداشت


var result = MessageBox.Show("Really close?", "Warning", MessageBoxButton.YesNo);
if (result != MessageBoxResult.Yes)
{
e.Cancel = false;
this.Hide();
}

SajjadKhati
چهارشنبه 23 فروردین 1402, 10:44 صبح
سلام
e.Cancel را باید true کنید . نه false .
و همچنین
this.Visibility = Visibility.Hidden

اگر پروپرتی Window.Visibility در رویداد Window.Closing کار نکرد (نمیدونم ، تست نکردم) ، در یک رویداد دیگه ای که مد نظرتون هست ، جابجا کنید .

NasimBamdad
چهارشنبه 23 فروردین 1402, 23:42 عصر
ممنون بزرگوار ، اینطوری درست شد


var result = MessageBox.Show("Really close?", "Warning", MessageBoxButton.YesNo);
if (result == MessageBoxResult.Yes)
{
e.Cancel = true;
_viewModel.ClearModel();
this.Visibility = Visibility.Hidden;
}
else if (result == MessageBoxResult.No)
{
e.Cancel = true;
}