Я разрабатываю Windows phone 8.1 RT приложение. Я использую Combobox. Для Combbox доступно более 20 операторов. при входе в Combobox приложение должно открыть все 20 opetaros в полном режиме. Мне нужны два разных шаблона, должен использовать один шаблон (изображение и текстовый блок), когда элементы открывается в полноэкранном режиме и в другом шаблоне (только TextBlock), когда элемент выбран из элементов полного режима. DataTemplateSelector наследуется и создает новый DataTemplateSelector. ItemTemplateSelector назначается с наследуемым DataTemplateSelector. Ниже используется код.Windows Phone 8.1 RT - ItemTemplateSelector - не привязка к Fullmode
<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}"
/>
товары не являются обязательными, когда мы вкладка выпадающий, показывающая список имен. Но, выбрав элемент в полном режиме, выбирается SelectTemplateCore, а выбранный элемент показан с помощью SelectedItemTemplate. Но SelectTemplateCore не используется при привязке Datasource.
В чем проблема с этим кодом? Почему DropDownItemsTemplate не используется для привязки элементов?
Заранее спасибо