0

Windows Phone 8.1 RT uygulamasını geliştiriyorum. Combobox kullanıyorum. Combbox'a bağlanmak için 20'den fazla Operatör var. Combobox'ta sekme yaptığımızda, App tüm 20 opetaros'u tam modda açmalıdır. İki farklı şablona ihtiyacım var, öğeler Tam modda açıldığında bir şablon (resim ve metin bloğu) ve tüm mod öğeleri arasında bir öğe seçildiğinde diğer şablon (yalnızca TextBlock) kullanılmalıdır. DataTemplateSelector, devralındı ​​ve yeni DataTemplateSelector oluşturuldu. ItemTemplateSelector, yeni alınan DataTemplateSelector ile atanır. Kullanılan kodun altında.Windows Phone 8.1 RT - ItemTemplateSelector - Fullmode'u Bağlamıyor

<ComboBox Grid.Row="3" Grid.Column="0" Margin="15 5 0 0" 
     ItemsSource="{Binding Operators}" SelectedItem="{Binding SelectedOperator, Mode=TwoWay}" 
     Style="{StaticResource FullModeComboBoxStyle1}" ItemContainerStyle="{StaticResource FullModeComboBoxItemStyle1}" 
     VerticalAlignment="Top" 
     Height="65" 
     ItemTemplateSelector="{StaticResource ExploreTemplateSelector}" 
     /> 

TemplateSelector

public class ExploreTemplateSelector : DataTemplateSelector 
{ 
    public DataTemplate DropdownItemsTemplate { get; set; } 
    public DataTemplate SelectedItemTemplate { get; set; } 

    protected override DataTemplate SelectTemplateCore(object item, DependencyObject container) 
    { 
     var parent = container; 

     while (parent != null && !(parent is ComboBoxItem) && !(parent is ComboBox)) 
      parent = VisualTreeHelper.GetParent(parent); 

     var inDropDown = (parent is ComboBoxItem); 

     return inDropDown 
      ? DropdownItemsTemplate 
      : SelectedItemTemplate; 

    } 
} 

DataTemplate

<DataTemplate x:Key="OperatorDataTemplate"> 
      <StackPanel Orientation="Horizontal" Margin="5 5 0 0" Height="Auto"> 
       <Image Source="{Binding ImageUri}" Height="35" Width="60" VerticalAlignment="Top" /> 
       <TextBlock Text="{Binding Name}" Style="{StaticResource ComboboxTextBlockStyle}" Margin="5 0 0 0" Width="120" VerticalAlignment="Top" TextWrapping="Wrap"/> 
      </StackPanel> 
     </DataTemplate> 

     <DataTemplate x:Key="SelectedOperatorDataTemplate"> 
      <TextBlock Text="{Binding Name}" Style="{StaticResource ComboboxTextBlockStyle}" Margin="5 0 0 0" Width="120" VerticalAlignment="Top" TextWrapping="Wrap"/> 
     </DataTemplate> 

     <class:ExploreTemplateSelector x:Key="ExploreTemplateSelector" DropdownItemsTemplate="{StaticResource SelectedOperatorDataTemplate}" 
             SelectedItemTemplate="{StaticResource SelectedOperatorDataTemplate}" 
             /> 

Öğeler bağlayıcı değilken biz sekme Combobox'unda, ad listesini gösteren. Ancak tam modda bir öğeyi seçerek, SelectTemplateCore seçildi ve SelectedItemTemplate kullanılarak Seçilen öğe gösterildi. Ancak, Veri Kaynağı'nı bağlarken SelectTemplateCore bulunmaz.

Bu koddaki sorun nedir? Neden DropDownItemsTemplate öğeleri bağlamak için kullanılmaz? peşin

Teşekkür

cevap

0

Eğer xaml şablon seçici belirtirken zaman, özellikleri aynı datatemplate "SelectedOperatorDataTemplate"

başlangıç ​​durumuna getirilmektedir Çünkü
İlgili konular