2011-11-02 41 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

相關問題