首页 > 解决方案 > 组合框中占位符的替代品

问题描述

我有一个通过我的视图模型加载的组合框。组合框一旦出现就会有一个默认的空白选择,自然可以很好地用占位符文本覆盖。

我尝试了不同的方法来实现这一点,但是由于似乎没有达到我的预期,我最终使用了一个在扩展组合框控件中支持水印功能的库(xceed)。

但是,如果我用新实体重新加载组合框,我会回到做出空白选择的情况 - 但是我可以扩展组合框以查看我的实体。

从用户的角度来看,这不是很好。这就是为什么我想知道,如何正确地将占位符文本添加到我的组合框,该文本将在我更新组合框的内容之前和之后出现。

标签: c#wpfxamlcombobox

解决方案


假设您在 IDictionary 中有选项,可能从数据库中填充。

因此,在您的 ViewModel 中,您可以执行以下操作:

IDictionary<int, string> items = GetComboOptions(); var comboDataSource = new Dictionary<int, string>({0,"Select..."}).Union(items).ToDictionary(kvp => kvp.Key, kvp => kvp.Value);

然后,您可能需要通过将代码放入属性来将其绑定到您的视图。我还没有测试过这段代码。


推荐阅读