c#+wpf确认取消弹窗_WPF MVVM 模式下的弹窗
时间: 2023-12-13 10:05:58 浏览: 213
在 WPF MVVM 模式下,弹窗可以使用自定义的对话框类来实现。以下是一个简单的示例:
首先,创建一个自定义的对话框类,例如名为 `ConfirmationDialog` 的类。该类应该包含确认和取消按钮以及相应的事件处理程序。
```csharp
public class ConfirmationDialog : Window
{
public event EventHandler Confirmed;
public event EventHandler Cancelled;
public ConfirmationDialog(string message)
{
InitializeComponent();
MessageTextBlock.Text = message;
}
private void ConfirmButton_Click(object sender, RoutedEventArgs e)
{
Confirmed?.Invoke(this, EventArgs.Empty);
Close();
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
Cancelled?.Invoke(this, EventArgs.Empty);
Close();
}
}
```
然后,在 ViewModel 中创建一个命令来显示对话框并处理确认和取消事件。例如:
```csharp
public class MainViewModel : INotifyPropertyChanged
{
public ICommand ConfirmCommand => new RelayCommand(Confirm);
private void Confirm()
{
var dialog = new ConfirmationDialog("Are you sure?");
dialog.Confirmed += OnConfirmed;
dialog.Cancelled += OnCancelled;
dialog.ShowDialog();
}
private void OnConfirmed(object sender, EventArgs e)
{
// 处理确认事件
}
private void OnCancelled(object sender, EventArgs e)
{
// 处理取消事件
}
}
```
最后,在 View 中绑定命令即可。
```xml
<Button Content="Confirm" Command="{Binding ConfirmCommand}" />
```
阅读全文