gpt4 book ai didi

WPF 列表框命令

转载 作者:行者123 更新时间:2023-12-03 10:15:24 25 4
gpt4 key购买 nike

好的,简而言之,我的程序有一个客户列表。这些客户都列在一个列表框中,因此当单击一个时,他们的所有信息都会显示在表单上。这通过数据绑定(bind)起作用,页面上的所有控件都绑定(bind)到列表框的 selectedItem。

我现在想做的是有一个消息对话框,询问用户在尝试更改选择时是否要保存。如果他们不这样做,我想将其恢复为集合中的原始项目。如果他们点击取消,我希望选择重新集中在先前选择的项目上。我想知道以 MVVM 方式完成此任务的最佳方法是什么?

目前,我有一个客户模型,我的虚拟机填充了列表框绑定(bind)到的客户集合。那么有没有办法处理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");
}

}

最佳答案

捕获更改事件的最佳方法是将列表框的 SelectedItem 绑定(bind)到 View 模型中的另一个属性,然后在设置上您可以做您需要做的事情:

private Customer selectedCustomer;
public Customer SelectedCustomer
{
get { return selectedCustomer; }
set
{
if (selectedCustomer== value) return;
selectedCustomer = value;
RaisePropertyChanged("SelectedCustomer");
// Do your stuff here
}
}

这是一个使用 MVVM 灯光 (RaisePropertyChanged) 的示例。

关于WPF 列表框命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6671872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com