【发布时间】:2010-02-23 23:19:19
【问题描述】:
假设我有一个包含一个窗口的应用程序。窗口内部是一个 tabcontrol,带有三个 tabitem。每个 tabitem 内部都有一个用户控件。
在一个标签中,我添加了颜色。在下一个选项卡中,我添加了水果。在第三个选项卡中,我有关系,用户可以在其中添加水果和颜色之间的链接。这种关系显示在一个列表框中,如:
Apple > Red
Pear > Green
在同一选项卡的下方,我缺少水果列表框和缺少颜色列表框...即已添加但未在关系中链接的水果或颜色。我应该解释一下,这些数据都存储在三个单独的文本文件中,fruits.txt、colors.txt 和relationships.txt。
我遇到的问题如下。目前,列表框等的填充发生在 Usercontrol_loaded 事件中。水果/颜色无关紧要,因为单击添加按钮后,列表会重新加载。问题出在关系屏幕上。
假设用户运行程序,然后单击关系选项卡以查看链接的内容。我们会说上面的例子已经在文本文件中。这样这种关系就显现出来了——而且没有遗漏的果实。用户然后单击水果选项卡并添加水果,然后单击颜色选项卡并添加颜色。然后移动到关系选项卡。 usercontrol_loaded 事件已经发生,因此这两个新添加的内容不会显示在列表框中。
如果我将代码移动到 GotFocus 事件,用户将无法在任何列表框中进行选择,因为它会不断加载,因为单击会触发事件。
除了提供刷新按钮之外,还有什么其他事件或方式可以让我在标签被“切换到”时刷新?
感谢阅读。
...
编辑 1: 如果我将数据绑定到我在代码隐藏中构建的缺失水果列表,我仍然会遇到同样的问题。每次他们跳出这个标签并返回它时,我都必须重新加载这个列表(因为他们可能已经添加了一种水果或一种颜色,现在已经丢失了)。
【问题讨论】:
标签: c# wpf events listbox tabcontrol