gpt4 book ai didi

WPF、MVVM 和组合框

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

我在使用 viewModel 中的组合框逻辑时遇到了一些问题。 viewModel 填充组合框,用户可以选择项目。

当一个项目被选中时,一些可编辑的信息会出现在 View 中并且他们可以进行更改。现在,如果进行了更改但未保存并且他们试图在下拉列表中选择另一个项目(“保存?”是/否/取消消息框),我想提示用户保存。

现在我需要记住之前选择的项目,并在用户选择取消时通过重置所选项目自行处理。由于 comboBox 没有 PreviewSelectionChanged 事件,这是我能想到的处理这种情况的唯一方法。它可以工作,但是当有多个组合框等时会变得有点困惑。

我是否遗漏了什么,或者这只是需要完成的方式吗?

最佳答案

你基本上必须在你的 View 模型中创建一个名为 isDirty 的标志或类似的东西。

public class EditorViewModel
{
private bool _isDirty = false;

private long _editableProperty;
public long EditableProperty
{
get { return _editableProperty; }
set
{
_editableProperty = value;

// We've detected a change so mark this view model as dirty.
_isDirty = true;
}
}
}

请注意,如果您要确保数据实际上与原始数据不同,您将不得不再跳过几个环节。所以假设有人不小心在 EditableProperty 中添加了一个空格并将其删除,您的 View 模型会认为它很脏并提示用户。

关于WPF、MVVM 和组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6527248/

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