在下面的Xaml中,第一个控件(TextBlock本身)没有问题绑定和呈现RecordCount的值.但是在第二个控件(带有ContentTemplate的Label)中,不会呈现RecordCount的值.然而,文字"汽车"变得很好.所以我知道ContentTemplate正在运行,但是从ContentTemplate内部对RecordCount的绑定却没有.我究竟做错了什么?
<TextBlock Text="{Binding RecordCount}"/>
<Label HorizontalAlignment="Center" >
<Label.ContentTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Width="100">
<TextBlock Text="{Binding RecordCount}"/>
<TextBlock Text=" Cars"/>
</StackPanel>
</DataTemplate>
</Label.ContentTemplate>
</Label>
Run Code Online (Sandbox Code Playgroud)
Qua*_*ter 12
将Label上的Content属性设置为当前的DataContext:
<Label HorizontalAlignment="Center" Content="{Binding}">
Run Code Online (Sandbox Code Playgroud)
或者,将StackPanel设置为内容,并且根本不使用模板:
<Label HorizontalAlignment="Center">
<StackPanel Orientation="Horizontal" Width="100">
<TextBlock Text="{Binding RecordCount}"/>
<TextBlock Text=" Cars"/>
</StackPanel>
</Label>
Run Code Online (Sandbox Code Playgroud)
ContentTemplate用于呈现内容.由于它为null,因此在实例化模板时,DataContext为null.仍然会创建TextBlocks,因此会渲染Cars,但null不具有RecordCount属性,因此第一个文本块将呈现为没有文本.
此外,如果您只使用两个TextBlock来连接文本,则可以使用.NET 3.5 SP1或更高版本中的StringFormat属性:
<Label Content="{Binding RecordCount}" ContentStringFormat="{}{0} Cars"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3771 次 |
| 最近记录: |