Windows phone 8 替换数据模板中的元素

Windows phone 8 替换数据模板中的元素,windows-phone-8,datatemplate,datatemplateselector,Windows Phone 8,Datatemplate,Datatemplateselector,我有一个LongListSelector,其ItemTemplate如下所示: <LongListSelector.ItemTemplate> <DataTemplate> <StackPanel> Here I have a lot of elements that are always the same. . . . and one

我有一个LongListSelector,其ItemTemplate如下所示:

<LongListSelector.ItemTemplate>
    <DataTemplate>
       <StackPanel>

          Here I have a lot of elements that are always the same.
          .
          .
          .
          and one that varies

       </StackPanel>
    </DataTemplate>     
</LongListSelector.ItemTemplate>

在这里,我有很多元素都是一样的。
.
.
.
还有一个是不同的
我知道如何使用此类根据项目类型更改ItemTemplate中的所有内容

我的问题是,如何使用模板选择器只更改一个变化的项目,这样我就不需要重复所有其他元素


我尝试在de
StackPanel
内部使用
ContentControl
ContentPresenter
但没有成功

您需要在XAML中创建一个数据触发器来检查每个项目是否都是您要查找的项目

相关程度足以让你走上正轨。结果会是这样的:

<Style TargetType="TabItem">
        <Style.Triggers>
            <!-- Styling for elements that are NOT the last item -->
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource LastItemConverter}}" Value="False">
                <Setter Property="Template">
                    <Setter.Value>
                        .
                        .
                        .
                    </Setter.Value>
                </Setter>
             </DataTrigger>
            <!-- Styling for elements that are the last item -->
            <DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource LastItemConverter}}" Value="True">
                <Setter Property="Template">
                    <Setter.Value>
                        .
                        .
                        .
                    </Setter.Value>
                </Setter>
             </DataTrigger>

希望有帮助

我不想为列表中的某一项设置样式。我想要的是重用除一个元素之外的大部分DataTemplate。它就像DataTemplate中的DataTemplate。
public class IsLastItemInContainerConverter : IValueConverter
{
    public object Convert(object value, Type targetType,
                          object parameter, CultureInfo culture)
    {
        DependencyObject item = (DependencyObject)value;
        TabControl tc = (TabControl)TabControl.ItemsControlFromItemContainer(item);


        // Return true for the first and last element 
        // (so they are similarly styled compared to other elements).
        if (tc.ItemContainerGenerator.IndexFromContainer(item) == tc.Items.Count - 1) {
            return true;
        }
        else if (tc.ItemContainerGenerator.IndexFromContainer(item) == 0)
        {
            return true;
        }
        else
        {
            return false;
        }

    }