2014-12-01 99 views
1

我有一個學生列表框和列表項目的數據模板。 DataTemplate有一個名爲tb的文本塊。 我想將此文本塊設置爲綁定到名稱屬性。 如何在xaml窗體外部執行此操作? (而不是從DataTemplate中)WPF DataTemplate文本塊綁定

<ListBox ItemsSource="{Binding l}"  ItemTemplate="{Binding DataTemplate_L}" Margin="12,70,0,0"> 

</ListBox> 

謝謝

回答

0

如果我理解你正確地,你問你如何設置綁定的文本塊,這是目前在您的DataTemplate?您不能在ListBox級別設置該數據綁定;它必須在你的DataTemplate中完成。

在這種情況下,DataTemplate將繼承列表中每個項目的DataContext。

<DataTemplate x:Key="myDataTemplate"> 
    <StackPanel> 
     <TextBlock Text="{Binding Path=Name}" /> 
     <TextBlock Text="{Binding Path=AnotherListItemProperty}" /> 
    </StackPanel> 
</DataTemplate> 

換句話說 - 這是DataTemplate中爲列表中的每個項目模板 - 和DataContext的將列表中的每個項目。

+0

但是數據模板應該是通用的... 如果我想在另一個地方使用這個數據模板與另一個綁定,我不能... – Matvey 2014-12-02 08:03:54

+0

通常,您將使用數據模板來爲特定數據類型定義模板,模型或視圖模型。就你而言,如果你想重複使用具有不同數據類型的數據模板,那麼在數據模板中必須有一些通用的佈局結構 - 這就是爲什麼你希望重用它。爲該數據模板創建一個定義該結構的視圖模型,並將其綁定到該模型。這可以讓您在父視圖模型中通過創建模板視圖模型的新實例並將數據轉換爲它來設置該文本。 – olitee 2014-12-02 08:32:30