2011-11-02 42 views
0

我想将数据绑定到LongListSelector的标题模板。这里是XAML代码将数据绑定到LongListSelector的标题(工具包)

<toolkit:LongListSelector x:Name="_List" Background="Transparent" IsFlatList="True" ItemTemplate="{StaticResource SmallImageTemplate}" 
      ListHeaderTemplate="{StaticResource ListHeader}" ListFooterTemplate="{StaticResource EmptyListFooter}" /> 

,并在C#中我有:

_List.ItemsSource = ListOfItems; 

,但我想对每一个场景中不同的头,所以我怎么能数据绑定到模板头?

回答

0

使用DataTemplateSelector,并基于绑定数据确定要使用的模板。

您也可以将此用于您前几天询问的问题。

public class DataTemplateSelector : ContentControl 
{ 
    public virtual DataTemplate SelectTemplate(object item, DependencyObject container) 
    { 
     throw new NotImplementedException(); 
    } 

    protected override void OnContentChanged(object oldContent, object newContent) 
    { 
     base.OnContentChanged(oldContent, newContent); 

     ContentTemplate = SelectTemplate(newContent, this); 
    } 
} 

然后根据数据选择您需要的模板。这里是我的一个:

public class EventTemplateSelector : DataTemplateSelector 
{ 
    public DataTemplate BreakTemplate 
    { 
     get; 
     set; 
    } 

    public DataTemplate EventTemplate 
    { 
     get; 
     set; 
    } 

    public DataTemplate DefaultTemplate 
    { 
     get; 
     set; 
    } 

    public override DataTemplate SelectTemplate(object item, DependencyObject container) 
    { 
     if (item == null) 
      return DefaultTemplate; 

     // important stuff here 
     var _event = item as ConferenceEvent; 
     if (_event != null) 
      return _event.IsBreak ? BreakTemplate : EventTemplate; 
     else 
      return DefaultTemplate; 
    } 
} 
+0

感谢您的回答。我会研究它! – Alex

相关问题