不能将ItemTemplateSelector与FlipView一起使用



我试图以flipView的方式使用ItemTemplatesEleter,就像我使用listView的ItemTemplateSelector相同,但它不起作用,我找不到任何示例flipview。

这是我的XAML:

<Page.Resources>
    <DataTemplate x:Key="textview">
        <TextBlock Text="{Binding textstring}" FontSize="140"/>
    </DataTemplate>
    <DataTemplate x:Key="imgview">
        <Image Source="{Binding imageurl}" />
    </DataTemplate>
    <local:flipviewselector x:Key="myselector" 
                            imageview="{StaticResource imgview}"
                            stringview="{StaticResource textview}"/>
</Page.Resources>
<FlipView Name="flip"
          ItemsSource="{Binding}"
          ItemTemplateSelector="{StaticResource myselector}"/>

这是我的C#代码:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
        this.NavigationCacheMode = NavigationCacheMode.Required;
    }
    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        var source = new ObservableCollection<flipviewitem>();
        source.Add(new flipviewitem("test1"));
        source.Add(new flipviewitem("image", new Uri("http://theheightsanimalhospital.com/clients/15389/images/playful-kitten-6683.jpg")));
        source.Add(new flipviewitem("test2"));
        source.Add(new flipviewitem("test3"));
        source.Add(new flipviewitem("test4"));
        flip.DataContext = source;
    }
}
public class flipviewselector : DataTemplateSelector
{
    public DataTemplate imageview { get; set; }
    public DataTemplate stringview { get; set; }
    protected override DataTemplate SelectTemplateCore(object item)
    {
        flipviewitem decide = item as flipviewitem;
        if (decide.imageurl != null)
        {
            return imageview;
        }
        return stringview;
    }
}
public class flipviewitem
{
    public flipviewitem(String text)
    {
        this.textstring = text;
    }
    public flipviewitem(String text, Uri url)
    {
        this.textstring = text;
        this.imageurl = url;
    }
    public String textstring { get; set; }
    public Uri imageurl { get; set; }
}

无需ItemTemplatesElector即可与集合的正常结合。

在搜索更多内容并提出一些事情后,我发现SelectTemplatecore funktion缺少某些东西。它需要看起来像这样:

protected override DataTemplate SelectTemplateCore(object item,DependencyObject container)

不确定为什么。

最新更新