2009-12-02 57 views
0

我有以下的DataTemplate:WPF數據綁定 - 數據模板沒有得到價值

<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和標題(來自命名空間Microsoft.TeamFoundation.WorkItemTracking.Client。)

我試圖把它放在TabItemTabControl中,它只顯示靜態文本。 (工作項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和Title都很好)。

關於如何解決此問題的任何想法,將不勝感激。

+0

我笨!這就是我得到的複製和粘貼代碼!無論如何。感謝偉大的(和快速答案)。當他們沒事的時候,我提出了所有的建議,並給出了第一個答案。 – Vaccano

+0

其實,我是第一個;) –

+0

事實上你。對不起,混淆了(選擇了錯誤的排序標籤)。我改變了答案來反映這一點。感謝您的支持。 – Vaccano

回答

2

你綁定LabelTarget屬性,當你真正想成爲結合它的Content屬性:

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

此外,可以考慮使用TextBlock代替Label的,如果你不需要額外的功能一個Label規定:

<TextBlock Text="{Binding Id}"/> 
1

我很新的WPF,所以原諒我,如果我走了基地,但並不需要設置Content標籤的屬性,而不是Target

2

您具有約束力Label.Target。目標是被標記的UIElement。您需要綁定Label.Content,或將其更改爲TextBlock並綁定TextBlock.Text。

(我的猜測是,你試圖綁定一個不存在的Label.Text性能和智能有益選擇目標,而不是你......!)