C#WPF中的占位符文本框-Can';Don’不要约束从属属性
我试图用一些变量占位符文本构建文本框。 但是属性“Placeholder Text”未在可视笔刷标签中使用C#WPF中的占位符文本框-Can';Don’不要约束从属属性,c#,wpf,xaml,C#,Wpf,Xaml,我试图用一些变量占位符文本构建文本框。 但是属性“Placeholder Text”未在可视笔刷标签中使用 中的占位符文本始终为空 当我在外使用绑定时,绑定工作正常。我试着将绑定用作文本:,效果非常好 为什么不在… 我希望有人能帮助我 公共部分类占位符文本框:文本框 { #区域占位符文本 /// ///获取或设置显示在字段旁边的占位符文本 /// 公共字符串占位符文本 { 获取{return(String)GetValue(PlaceholderTextProperty);} set{S
中的占位符文本始终为空
当我在外使用绑定时,绑定工作正常。我试着将绑定用作文本:
,效果非常好
为什么不在…
我希望有人能帮助我
公共部分类占位符文本框:文本框
{
#区域占位符文本
///
///获取或设置显示在字段旁边的占位符文本
///
公共字符串占位符文本
{
获取{return(String)GetValue(PlaceholderTextProperty);}
set{SetValue(占位符文本属性,值);}
}
///
///已标识占位符文本依赖项属性
///
public static readonly dependencProperty PlaceholderTextProperty=dependencProperty.Register(“占位符文本”、typeof(字符串)、typeof(占位符文本框)、new PropertyMetadata(“键入一些文本”);
#端区
公共占位符文本框()
{
初始化组件();
this.phTextBox.DataContext=this;
}
}
您需要通过“ElementName
”进行绑定,但这在参考资料中有详细说明:
<Label
Content="{Binding Source={x:Reference phTextBox}, Path=PlaceholderText}"
Foreground="LightGray" />
另请参见。我不确定这是否是最好的方法,但请注意,当您显式设置控件的DataContext属性(无论是该属性还是某些私有视图模型)时,任何基于DataContext的标准绑定都将不再起作用。例如,
将不起作用,因为在控件的当前DataContex中需要SomeText属性。您应该删除赋值并使用Sajith建议的绑定,可以稍微简化为Content=“{Binding placeholder text,RelativeSource={RelativeSource AncestorType=TextBox}
。或者使用类似Content=“{Binding placeholder text,ElementName=phTextBox}的ElementName绑定“
Sajithsager和Clemens大家好,我尝试了两种变体,但不幸的是两种都不起作用。不会显示占位符文本:/