【发布时间】:2011-10-04 01:15:55
【问题描述】:
好的,简而言之,我的程序有一个客户列表。这些客户都列在一个列表框中,因此当单击一个时,他们的所有信息都会显示在表单上。这通过数据绑定起作用,页面上的所有控件都绑定到列表框的 selectedItem。
我现在想做的是有一个消息对话框,询问用户在尝试更改选择时是否要保存。如果他们不这样做,我想将其恢复为集合中的原始项目。如果他们点击取消,我希望选择重新集中在先前选择的项目上。我想知道以 MVVM 方式完成此任务的最佳方法是什么?
目前我有一个客户模型,我的虚拟机填充了列表框绑定到的客户集合。那么有没有办法处理VM上的选择更改事件,包括能够操纵列表框的selectedIndex? 这是我的代码,所以你可以看到我在做什么。
if (value != _selectedAccount)
{
MessageBoxResult mbr = MessageBox.Show("Do you want to save your work?", "Save", MessageBoxButton.YesNoCancel);
if (mbr == MessageBoxResult.Yes)
{
//Code to update corporate
Update_Corporate();
_preSelectedAccount = value;
_selectedAccount = value;
}
if (mbr == MessageBoxResult.No)
{
//Do Stuff
}
if (mbr == MessageBoxResult.Cancel)
{
SelectedAccount = _preSelectedAccount;
NotifyPropertyChanged("SelectedAccount");
}
}
【问题讨论】:
标签: wpf mvvm binding listbox command