青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 55  文章 - 15  trackbacks - 0
<2013年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

常用鏈接

留言簿

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

      
         前文再續(xù),書接上一回。上次使得我們的GridView每個(gè)Item都有不同的尺寸,至少有點(diǎn)與眾不同了,今天我們更近一步,不僅尺寸不同,而且Item顯示的方式也不同。閑話少敘,先上圖:
      
  我們看到,這是一個(gè)Grouped GridView,分成很多個(gè)組,這是截取的第一個(gè)組。我們看到,該組里面的第一個(gè)GridViewItem中的時(shí)間、圖片都與其他幾個(gè)不一樣,而且,第一個(gè)GridViewItem中還多了下面的一行1.Low:12312.現(xiàn)在我們就來看具體的步驟。
       其實(shí)步驟很簡單,GridView、ListView這種接收Collection作為源的控件,都有一個(gè)ItemTemplateSelector的屬性,這個(gè)屬性接收一個(gè)DateTemplateSelector類型的值。我們要做的,就是寫一個(gè)類繼承自DataTemplateSelector,設(shè)置一系列的DataTemplate類型的屬性,并且重寫其中的虛函數(shù)SelectTemplateCore()方法即可。具體步驟如下:
 1 public ref class myDataTemplateSelector sealed : public Windows::UI::Xaml::Controls::DataTemplateSelector
 2     {
 3     public:
 4         property Windows::UI::Xaml::DataTemplate^ dataTemplate0;
 5         property Windows::UI::Xaml::DataTemplate^ dataTemplate1;
 6         property Windows::UI::Xaml::DataTemplate^ dataTemplate2;
 7         // 可以有很多個(gè)屬性。
 8         virtual Windows::UI::Xaml::DataTemplate^ SelectTemplateCore(Platform::Object^ item, Windows::UI::Xaml::DependencyObject^ container) override;
 9         
10     };

      類定義:
 1 Windows::UI::Xaml::DataTemplate^  myDataTemplateSelector::SelectTemplateCore(Platform::Object^ item, Windows::UI::Xaml::DependencyObject^ container)
 2 {
 3     {
 4             auto _item = (Data::DataItem^)item;
 5             switch (_item->TemplateFlag)
 6                {   
case 0:
 7                          return dataTemplate0; break;
 8                      case 1                
 9                          
return dataTemplate1; break;
10                      case 2             
11                         
return dataTemplate2;break;
12
13                      default:
14                          break;
15                   }
16             return Windows::UI::Xaml::Controls::DataTemplateSelector::SelectTemplateCore(item,container);
17         }
      }

其中第5行的TempFlag是我自己設(shè)置的用來辨別應(yīng)該用哪個(gè)Template的,大家可以自行根據(jù)自己的類來進(jìn)行判斷。這個(gè)方法的意思就是,將container中的所有item都遍歷一遍,然后為每個(gè)item選擇一種DataTemplate。

當(dāng)我們完成了這個(gè)類之后,還要在XAML文件中進(jìn)行配置。dataTemplate0--2 必須有相關(guān)聯(lián)的dataTemplate才能起作用,我們要在XAML文件中初始化這個(gè)類(當(dāng)然你也可以在cpp文件中初始化,但是不如XAML直觀):
1         <local:myDataTemplateSelector x:Name="myDataTemplateSelector" dataTemplate1="{StaticResource SmallDateTemplate}" dataTemplate0="{StaticResource BigDateTemplate}" dataTemplate2="{StaticResource OthersTemplate}"/>
2 
因?yàn)槲覀兊念惒皇窍到y(tǒng)自帶的,所以在實(shí)例化的時(shí)候要加上一個(gè)local:,我們的實(shí)例命名為“myDataTemplateSelector",其中的SamllDateTemplate、BigDateTemplate和OthersTemplate都是我們在Page.Resource里面預(yù)先定義好的資源,所以,就可以用上面的代碼進(jìn)行賦值。順序可以打亂,沒有影響。
然后,將這個(gè)DataTemplateSelector同GridView聯(lián)系起來:
1 <common:VariableGridView
2  ItemTemplateSelector="{StaticResource myDataTemplateSelector}"
3 />
因?yàn)槲业腣ariableGridView是定義在common名字空間中的,所以前面應(yīng)該加上common:。
至此,我們的ItemTemplateSelector就已經(jīng)完成了,當(dāng)運(yùn)行程序的時(shí)候,我們可以看到不同的Item有不同的DataTemplate。


另外,GridView還有一個(gè)GroupTemplateSelector,但是該屬性貌似不起作用,在微軟官方論壇上問了問題,也沒有人回應(yīng)。把問題貼在這里,如果有人看到,請幫忙解答一下,謝謝!



0
 


I find this question in C# forum, but I didn't find the answer.

My question is I want to select different GroupStyle for a grouped GridView control. When I derive a class from GroupStyleSelector and override virtual method SelectGroupStyleCore(), I only can return a default GroupStyle. My code looks like this:
public ref class myGroupStyleSelector sealed : public Windows::UI::Xaml::Controls::GroupStyleSelector
    {
    public:
        property Windows::UI::Xaml::Controls::GroupStyle^ groupTemplate0;
        property Windows::UI::Xaml::Controls::GroupStyle^ groupTemplate1;
        property Windows::UI::Xaml::Controls::GroupStyle^ groupTemplate2;

                virtual Windows::UI::Xaml::Controls::GroupStyle^ SelectGroupStyleCore(Platform::Object^ group, unsigned int level) override
        {
            
            auto collectionViewGroup = safe_cast
<Windows::UI::Xaml::Data::ICollectionViewGroup^>(group);
            if(collectionViewGroup != nullptr)
            {
//ItemsContainer include Items
                auto groupVM = safe_cast
<ItemsContainer^>(collectionViewGroup->Group);
                if(groupVM != nullptr)
                {
// ContainerGroup is a Groups enum, indicate which group is
                    switch(groupVM->ContainerGroup)
                    {
                        case Groups::Group1:
                            return groupTemplate0;
                            break;
                        case Groups::Group2:
                            return groupTemplate1;
                            break;
                        default:
                            return groupTemplate2;
                            break;
                    }
                }
                return Windows::UI::Xaml::Controls::GroupStyleSelector::SelectGroupStyleCore(group, level);
            }
// If I write it like this, I always get groupTemplate1, why?
            return groupTemplate1;
        }
    };

I set a break point at beginning of this class, and I notify when the first and second time this method was invoked, the group and level is 0, at the third time level is 1, but I only get goupTemplate1. Is that I forgot something?

Thanks!

         下一章提示:GridView絕對是一個(gè)很復(fù)雜的東西,如何設(shè)置GridView,GridView中的屬性都代表神馬意思,下一章進(jìn)行簡單的介紹。
posted on 2012-10-17 21:01 Dino-Tech 閱讀(1601) 評論(0)  編輯 收藏 引用 所屬分類: Windows 8
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲激情在线观看| 欧美成人中文字幕| 亚洲午夜在线观看视频在线| 久久精品夜色噜噜亚洲aⅴ| 亚洲美洲欧洲综合国产一区| 久久精品欧美| 国产欧美一区二区三区视频| 中日韩视频在线观看| 亚洲激情视频| 久久蜜桃精品| 伊人久久亚洲热| 久久漫画官网| 久久久久这里只有精品| 国产在线日韩| 久久综合色综合88| 久久久久久国产精品mv| 国产日韩欧美一区二区三区在线观看| 中国女人久久久| av72成人在线| 国产精品国产三级国产aⅴ9色| 一区二区三区视频在线看| 亚洲另类一区二区| 国产精品va在线播放| 欧美亚洲一级片| 欧美在线观看视频一区二区| 国内成人在线| 欧美好骚综合网| 韩国成人精品a∨在线观看| 毛片基地黄久久久久久天堂| 亚洲与欧洲av电影| 国产综合久久久久久鬼色| 久久久久久999| 久久亚洲图片| 久久噜噜噜精品国产亚洲综合| 国产一区二区三区成人欧美日韩在线观看 | 一区二区三区精品在线| 一区二区免费在线观看| 国产欧美精品在线观看| 蜜桃精品久久久久久久免费影院| 免费黄网站欧美| 这里只有精品在线播放| 亚洲欧美成人一区二区三区| 在线观看视频一区二区欧美日韩| 最新日韩在线| 国产精品色一区二区三区| 久久久久国产精品一区| 欧美电影打屁股sp| 欧美在线日韩| 欧美精品久久久久久久免费观看| 午夜一级久久| 模特精品裸拍一区| 欧美一区二区三区日韩| 欧美高清视频www夜色资源网| 先锋影音久久| 欧美理论在线| 男女精品网站| 国产精品三上| 亚洲精品美女在线观看| 韩国一区电影| 亚洲一区在线免费| 亚洲巨乳在线| 久久久久国产精品人| 亚洲小说区图片区| 美女久久一区| 欧美伊人久久久久久久久影院 | 亚洲综合丁香| 亚洲精品日韩在线观看| 欧美在线观看日本一区| 亚洲一区网站| 欧美成人自拍| 久久永久免费| 国产欧美一区二区色老头| 一本久道综合久久精品| 91久久一区二区| 亚洲综合三区| 在线性视频日韩欧美| 裸体一区二区| 免费观看一级特黄欧美大片| 国产亚洲va综合人人澡精品| 亚洲乱码视频| 久久九九热re6这里有精品 | 一本色道久久综合亚洲精品按摩| 亚洲国产精品小视频| 国产一区亚洲一区| 久久夜精品va视频免费观看| 亚洲欧美成人网| 欧美人成在线| 亚洲精品美女久久7777777| 亚洲国产精品久久91精品| 久久国产精品99久久久久久老狼| 亚洲欧美日韩国产成人| 欧美日韩久久久久久| 亚洲欧洲日本专区| 日韩一级免费观看| 欧美人成免费网站| 亚洲精品中文在线| 一区二区精品在线| 欧美体内she精视频在线观看| 91久久在线视频| 亚洲免费av电影| 欧美精品一二三| 亚洲区中文字幕| 在线亚洲欧美视频| 国产精品久久久久永久免费观看 | 午夜精品999| 午夜精品视频一区| 国产麻豆午夜三级精品| 午夜电影亚洲| 国产精品第2页| 亚洲一区在线免费观看| 久久福利电影| 亚洲第一视频| 欧美噜噜久久久xxx| 亚洲激情在线播放| 亚洲网站在线看| 国产精品播放| 欧美一区二区三区四区高清 | 久久久精品网| 欧美国产综合视频| 一本久久知道综合久久| 国产精品豆花视频| 欧美一级大片在线观看| 另类图片综合电影| 亚洲伦理在线| 国产精品日韩欧美一区| 欧美一区二区成人| 亚洲大片免费看| 亚洲午夜精品| 韩国av一区二区| 欧美成人精品高清在线播放| 日韩午夜精品| 久久久久在线观看| 99视频+国产日韩欧美| 国产精品一二三四| 久久夜色精品国产欧美乱| 亚洲精品一区在线| 久久免费黄色| 亚洲视频在线视频| 狠狠综合久久av一区二区老牛| 欧美激情视频在线免费观看 欧美视频免费一| 一本到高清视频免费精品| 久久亚洲精品一区| 亚洲自啪免费| 久久经典综合| 亚洲精品1区2区| 久久精品国产综合| 一区二区日韩免费看| 国产综合网站| 欧美日韩你懂的| 久久伊伊香蕉| 亚洲欧美日韩精品| 日韩一区二区久久| 久久亚洲免费| 理论片一区二区在线| 亚洲一区影院| 日韩视频一区二区三区在线播放免费观看 | 欧美大片免费观看在线观看网站推荐| 在线亚洲欧美视频| 亚洲激情第一页| 国产在线不卡视频| 国产精品麻豆va在线播放| 欧美国产91| 久久在线免费观看视频| 欧美一区二区视频在线观看2020| 一区二区日韩免费看| 亚洲青色在线| 欧美黄色aaaa| 欧美.www| 卡通动漫国产精品| 久久精品视频播放| 久久er精品视频| 午夜在线一区| 亚洲欧美国产视频| 亚洲一区图片| 亚洲一区尤物| 午夜精品久久久久久久99黑人| 国产精品99久久久久久有的能看| 日韩视频不卡| 日韩视频在线观看一区二区| 91久久精品国产91性色tv| 亚洲国产91| 亚洲欧洲日韩综合二区| 亚洲精品国产精品国自产在线 | 亚洲国产一二三| 在线观看亚洲一区| 在线日本高清免费不卡| 亚洲福利在线视频| 亚洲激情一区二区| 日韩视频精品| 在线亚洲免费视频| 亚洲综合色丁香婷婷六月图片| 亚洲制服av| 欧美在线观看视频在线| 久久久久久97三级| 欧美成人按摩| 亚洲精品国产精品乱码不99| 亚洲精品小视频| 亚洲视频在线二区| 欧美一区二区三区视频在线| 久久综合九色欧美综合狠狠|