我很难确定WPF ComboBox的工作原理。网上有很多例子,但似乎没有一个例子是一个非常常见的案例,一个带有ComboBox和保存/取消按钮的表格,如下所述。
我所要做的就是让一个带有单个ComboBox的WPF表单中包含2个字符串,比如" A"和" B"。和2个按钮保存并取消。
点击取消按钮,将忽略新选择的值。例如,如果打开表单时,ComboBox会显示值" A",然后当用户将选择更改为" B"然后单击取消,重新打开表格whill show" A"。
点击保存按钮,将保存所选值。例如,当窗体打开时,ComboBox显示值" A"并且用户选择" B"并点击保存,然后重新打开表单将显示" B"。
我还没有提供任何代码,因为我没有。我只是想为我的学习找到一个涵盖这个场景的示例/教程。
更新 WPF,MVVM(或不,不管)。我正在寻找的是一个涵盖这种情况的好链接。我发现的只是简约,只是在表格上显示组合。或者另一个版本是a)选择新值,b)获得提示确认你确实要选择它(不用说,这只是愚蠢的)。 对于这种常见情况感到奇怪。
答案 0 :(得分:1)
不确定为什么你在这里看到了问题。唯一可能的最大问题可能是因为你认为控件会像你想象的那样工作(没有你做任何事情) - 你需要付出努力来让它像你需要的那样行事
每次关闭表单时,都会丢弃它的实例。同样,当您打开表单时,您将创建一个新实例。既然它是一个全新的实例,那么它是否真的有意义地显示它的作用,就像它第一次被打开一样?
如果您需要在关闭和打开之间保持信息,那么就像将其存储在不会被破坏的地方一样简单。
对于"保存"按钮的Click
事件处理程序,将组合框中的值复制到其他位置,可能是存储库,某个地方的静态单例或主窗口。
// e.g. static singleton
MySingletonStorage.Instance.ComboBoxValue = myComboBox.Text;
然后在你的表单构造函数中,只需从存储中获取值。
myComboBox.Text = MySingletonStorage.Instance.ComboBoxValue;