WPF对话框取消 - 一种常见的场景

时间:2016-07-07 00:07:38

标签: wpf combobox

我很难确定WPF ComboBox的工作原理。网上有很多例子,但似乎没有一个例子是一个非常常见的案例,一个带有ComboBox和保存/取消按钮的表格,如下所述。

我所要做的就是让一个带有单个ComboBox的WPF表单中包含2个字符串,比如" A"和" B"。和2个按钮保存并取消。

点击取消按钮,将忽略新选择的值。例如,如果打开表单时,ComboBox会显示值" A",然后当用户将选择更改为" B"然后单击取消,重新打开表格whill show" A"。

点击保存按钮,将保存所选值。例如,当窗体打开时,ComboBox显示值" A"并且用户选择" B"并点击保存,然后重新打开表单将显示" B"。

我还没有提供任何代码,因为我没有。我只是想为我的学习找到一个涵盖这个场景的示例/教程。

更新 WPF,MVVM(或不,不管)。我正在寻找的是一个涵盖这种情况的好链接。我发现的只是简约,只是在表格上显示组合。或者另一个版本是a)选择新值,b)获得提示确认你确实要选择它(不用说,这只是愚蠢的)。 对于这种常见情况感到奇怪。

1 个答案:

答案 0 :(得分:1)

不确定为什么你在这里看到了问题。唯一可能的最大问题可能是因为你认为控件会像你想象的那样工作(没有你做任何事情) - 你需要付出努力来让它像你需要的那样行事

每次关闭表单时,都会丢弃它的实例。同样,当您打开表单时,您将创建一个新实例。既然它是一个全新的实例,那么它是否真的有意义地显示它的作用,就像它第一次被打开一样?

如果您需要在关闭和打开之间保持信息,那么就像将其存储在不会被破坏的地方一样简单。

对于"保存"按钮的Click事件处理程序,将组合框中的值复制到其他位置,可能是存储库,某个地方的静态单例或主窗口。

// e.g. static singleton
MySingletonStorage.Instance.ComboBoxValue = myComboBox.Text;

然后在你的表单构造函数中,只需从存储中获取值。

myComboBox.Text = MySingletonStorage.Instance.ComboBoxValue;