组合框中占位符的替代品

Alternatives to placeholder in combobox

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

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

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

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

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

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

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

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