2014-12-01 95 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