【发布时间】:2018-09-07 19:10:39
【问题描述】:
我有一个组合框,我希望物理显示的文本始终保持不变。
我希望用户选择一个项目,然后将其传入,但组合框上的实际文本保持不变。
在
FileBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
事件我发现用
选择了哪个项目 if (((ComboBox)sender).SelectedItem != null)
{
if (((ComboBox)sender).SelectedItem.ToString() == "New File")
{
}
}
(我稍后会处理更多)
然后我尝试将文本更新为“文件”。
我尝试了许多似乎不起作用的方法。
我试过简单地做
FileBox.text = "File";
this.Dispatcher.Invoke(() =>
{
FileBox.Text = "File";
});
FileBox.SelectedItem = "File";
在调试时,.Text 属性似乎确实得到了更新,但它似乎在事件结束时被覆盖。为了测试,我有一个按钮:
var text = FileBox.Text;
FileBox.Text = "File";
当我选择“新文件”时,var text == 新文件
这里的 FileBox.Text 代码可以正常工作并将其更新回 File
我是否需要在 SelectionChanged 事件之外再次设置文本,如果需要,我将如何执行此操作?
谢谢
编辑
我不认为这是发布的重复,因为他希望在选择某些内容时默认消失,我希望它重新出现
【问题讨论】:
-
所以基本上,您希望您的组合框在您的代码获得用户选择的项目后再次选择默认选定项目“文件”?
-
你试过
FileBox.SelectedIndex = -1吗? -
@Mac 是的,这就是我所需要的
-
@LennartStoop 刚刚尝试过,这似乎不起作用