代码之家  ›  专栏  ›  技术社区  ›  Vaccano

WPF数据绑定-数据模板未获取值

  •  0
  • Vaccano  · 技术社区  · 15 年前

    我有以下数据模板:

    <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> 部分。它用于显示工作项对象的ID和标题(来自命名空间 Microsoft.TeamFoundation.WorkItemTracking.Client )

    我试着把这个放在 TabItem 在一个 TabControl 它只显示静态文本。(工作项ID和标题不显示,但模板中的静态文本显示。)

    显然,模板正在被激发,但是绑定不起作用,我似乎不明白为什么。

    这是我的C叫它:

        private void PickWorkItem_Click(object sender, RoutedEventArgs e)
        {
            int Id = int.Parse(((Button) e.OriginalSource).Tag.ToString());
    
            _mediator.PickedWorkItem = GetWorkItemInQueryResultListByID(Id);
            tabAddLinks.DataContext = _mediator.PickedWorkItem;
            tabAddLinks.Content = _mediator.PickedWorkItem;
    
        }        
    

    我在DataContext的输入和输出中尝试了它,它的工作原理是一样的。调试时,mediator.pickedWorkItem的值设置正确(ID和标题都可以)。

    关于如何解决这一问题的任何想法都将不胜感激。

    3 回复  |  直到 15 年前
        1
  •  2
  •   Tim Cooper    13 年前

    你在装订 Label Target 属性,当您实际想要绑定时, Content 财产:

    <Label Content="{Binding Id}"/>
    

    另外,考虑使用 TextBlock 而不是 标签 如果您不需要额外的功能a 标签 提供:

    <TextBlock Text="{Binding Id}"/>
    
        2
  •  2
  •   itowlson    15 年前

    您正在绑定label.target。目标是要标记的uielement。您需要绑定label.content,或者将其更改为textBlock并绑定textBlock.text。

    (我猜您试图绑定一个不存在的标签。文本属性和IntelliSense帮助您选择了目标…!)

        3
  •  1
  •   Adam Robinson    15 年前

    我是WPF新手,所以如果我不在基地,请原谅,但你不需要设置 Content 标签的属性,而不是 Target ?