【发布时间】:2010-06-12 11:30:34
【问题描述】:
我正在使用 MVVM 模式在 WPF 中编写一个应用程序,并且确实经常使用TextBoxes。
我不想为用户使用标签来了解用户文本框的用途,即我不想要这样的东西:
<TextBlock> Name: </TextBlock>
<TextBox />
相反,我希望TextBox 包含自己的标签。静态地,你可以这样表达:
<TextBox>Name</TextBox>
如果光标显示在文本框中,即TextBox 获得焦点,我希望描述文本消失。如果TextBox 留空并失去焦点,则应再次显示描述文本。它类似于 StackOverflow 或 Firefox 的搜索文本框。 (如果您不确定我的意思,请告诉我)。
一个 TextBox 的标签可能会在运行时更改,具体取决于例如ComboBox 的选定元素或我的 ViewModel 中的值。 (就像在 Firefox 的搜索 TextBox 中,如果您从搜索引擎菜单中选择 google,则 TextBox 的标签将更改为“Google”,如果您选择“Yahoo”,则其设置为“Yahoo”)。因此我希望能够绑定标签的内容。
考虑到我可能已经在Text 属性上绑定了TextBox。
如何实现这样的行为并使其可重用用于我的任何TextBox?代码是受欢迎的,但不是必需的;对要做什么的描述就足够了。
提前谢谢你。
【问题讨论】: