首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Flipview不能使用ItemTemplateSelector

Flipview不能使用ItemTemplateSelector
EN

Stack Overflow用户
提问于 2015-05-05 13:54:59
回答 1查看 125关注 0票数 0

我试图使用带有Flipview的ItemTemplateSelector,就像我使用带有Listview的ItemTemplateSelector一样,但是它不起作用,而且我找不到任何关于如何使用Flipview的例子。

这是我的XAML:

代码语言:javascript
复制
<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#代码:

代码语言:javascript
复制
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的情况下正常绑定到集合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-05 14:50:32

在搜索了更多内容之后,我发现SelectTemplateCore函数遗漏了一些东西。它应该是这样的:

代码语言:javascript
复制
protected override DataTemplate SelectTemplateCore(object item,DependencyObject container)

不知道为什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30055013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档