我使用此XAML模拟文本框上的水印文本,但Text Property的绑定无效:
<TextBox x:Name="txtSearch" BorderThickness="0">
<ap:CueBannerService.CueBanner>
<TextBlock Foreground="Black" Opacity=".7" Text="{Binding Path=WatermarkText}"/>
</ap:CueBannerService.CueBanner>
</TextBox>
另一方面,以下任何代码都有效:
<TextBlock Foreground="Black" Opacity=".7" Text="Watermark Test"/>
<TextBox Opacity=".7" Text="{Binding Path=WatermarkText}"/>
为什么不工作?谢谢!
更新
这也可以正常工作(没有TextBlock):
<TextBox x:Name="txtSearch" BorderThickness="0" ap:CueBannerService.CueBanner="{Binding Path=WatermarkText}">
更新2
这也有效!:
<TextBox x:Name="txtSearch" BorderThickness="0">
<ap:CueBannerService.CueBanner>
<TextBlock Foreground="Black" Opacity=".7" Text="Watermark Text"/>
</ap:CueBannerService.CueBanner>
</TextBox>
答案 0 :(得分:0)
使用以下内容替换TextBlock的绑定:
{Binding DataContext.WatermarkText,RelativeSource = {RelativeSource AncestorType = {x:Type TextBox}}}
将检查为什么这不起作用。
这应该有效!我们确保将与TextBox相关联的DataContext用于TextBlock:
{Binding DataContext.WatermarkText,ElementName = txtSearch}