我有以下DataTemplate:
<DataTemplate DataType="{x:Type Client:WorkItem}">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="200" />
</Grid.ColumnDefinitions>
<Label Name="lblIDText" Margin="2">WI ID:</Label>
<Label Name="lblID" Margin="2" Grid.Column="1"
Target="{Binding Id}"></Label>
<Label Name="lblTitleText" Grid.Row="1" Margin="2">WI Title:</Label>
<Label Name="lblTitle" Margin="2" Grid.Row="2" Grid.ColumnSpan="2"
Target="{Binding Title}"></Label>
</Grid>
</DataTemplate>
在我的<Window.Resources>
部分。它旨在显示WorkItem对象的Id和Title(来自名称空间Microsoft.TeamFoundation.WorkItemTracking.Client
。)
我尝试将其放在TabItem
的{{1}}中,它只显示静态文本。 (WorkItem ID和标题不显示,但模板中的静态文本显示。)
显然模板正在被解雇,但绑定无效,我似乎无法理解为什么。
这是我的C#调用它:
TabControl
我使用DataContext进行了尝试,它的工作方式相同。当我调试时,_mediator.PickedWorkItem的值设置正确(Id和Title都很好)。
任何关于如何解决这个问题的想法都将受到赞赏。
答案 0 :(得分:2)
当您确实要绑定Label
属性时,您绑定了Target
的{{1}}属性:
Content
此外,如果您不需要<Label Content="{Binding Id}"/>
提供的额外功能,请考虑使用TextBlock
而不是Label
:
Label
答案 1 :(得分:2)
您正在绑定Label.Target。目标是被标记的UIElement。您需要绑定Label.Content,或将其更改为TextBlock并绑定TextBlock.Text。
(我的猜测是你试图绑定一个不存在的Label.Text属性,而Intellisense帮助你选择Target而不是......!)
答案 2 :(得分:1)
我对WPF很新,所以请原谅我,如果我不在基础,但你不需要设置标签的Content
属性,而不是Target
?