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

隨筆 - 55  文章 - 15  trackbacks - 0
<2012年10月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用鏈接

留言簿

隨筆分類

隨筆檔案

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

      
         前文再續,書接上一回。上次使得我們的GridView每個Item都有不同的尺寸,至少有點與眾不同了,今天我們更近一步,不僅尺寸不同,而且Item顯示的方式也不同。閑話少敘,先上圖:
      
  我們看到,這是一個Grouped GridView,分成很多個組,這是截取的第一個組。我們看到,該組里面的第一個GridViewItem中的時間、圖片都與其他幾個不一樣,而且,第一個GridViewItem中還多了下面的一行1.Low:12312.現在我們就來看具體的步驟。
       其實步驟很簡單,GridView、ListView這種接收Collection作為源的控件,都有一個ItemTemplateSelector的屬性,這個屬性接收一個DateTemplateSelector類型的值。我們要做的,就是寫一個類繼承自DataTemplateSelector,設置一系列的DataTemplate類型的屬性,并且重寫其中的虛函數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         // 可以有很多個屬性。
 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是我自己設置的用來辨別應該用哪個Template的,大家可以自行根據自己的類來進行判斷。這個方法的意思就是,將container中的所有item都遍歷一遍,然后為每個item選擇一種DataTemplate。

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


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



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絕對是一個很復雜的東西,如何設置GridView,GridView中的屬性都代表神馬意思,下一章進行簡單的介紹。
posted on 2012-10-17 21:01 Dino-Tech 閱讀(1591) 評論(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>
            亚洲美女色禁图| 亚洲一区二区视频在线观看| 久久精品青青大伊人av| 亚洲综合激情| 亚洲专区一二三| 欧美亚洲免费电影| 久久精品免费电影| 欧美国产精品劲爆| 欧美日韩一级片在线观看| 欧美午夜激情在线| 国产亚洲精品自拍| 亚洲国产乱码最新视频| 一本久道久久综合狠狠爱| 亚洲系列中文字幕| 亚洲欧美日产图| 久久最新视频| 亚洲麻豆av| 欧美在线播放| 欧美精品成人一区二区在线观看| 欧美视频二区36p| 国内精品久久久久影院色| 日韩视频一区二区在线观看 | 国产欧美二区| 红杏aⅴ成人免费视频| 亚洲国内高清视频| 亚洲女人天堂成人av在线| 久久精品国产欧美激情| 亚洲国产精品黑人久久久| 亚洲老板91色精品久久| 久久精品二区三区| 欧美乱大交xxxxx| 国产日韩亚洲欧美精品| 日韩一级视频免费观看在线| 欧美在线www| 亚洲精品123区| 欧美一区二区日韩| 欧美日韩一区二区欧美激情| 黄色成人av网站| 午夜亚洲精品| 日韩亚洲欧美一区二区三区| 久久精品盗摄| 国产精品一区二区久久| 亚洲视频每日更新| 欧美电影免费网站| 欧美一级视频免费在线观看| 欧美日韩国产天堂| 亚洲大胆人体在线| 久久久久久精| 亚洲欧美日韩精品久久亚洲区 | 性欧美xxxx大乳国产app| 欧美激情视频一区二区三区在线播放 | 99国内精品久久久久久久软件| 欧美专区日韩专区| 亚洲一区在线直播| 欧美日韩中文字幕综合视频| 亚洲精品一品区二品区三品区| 久久久久久久久伊人| 午夜伦欧美伦电影理论片| 国产精品国产三级国产专区53| 最新热久久免费视频| 欧美福利视频| 欧美国产日本在线| 日韩视频免费观看| 亚洲激情中文1区| 欧美日韩网站| 午夜久久资源| 99热免费精品| 欧美一区二区三区久久精品茉莉花 | 女女同性精品视频| 久久久久久有精品国产| 狠狠综合久久av一区二区老牛| 久久蜜桃资源一区二区老牛| 欧美一区二区大片| 很黄很黄激情成人| 蜜桃久久精品乱码一区二区| 久久综合狠狠综合久久激情| 亚洲日本va在线观看| 亚洲国产精品ⅴa在线观看| 欧美日韩第一页| 亚洲欧美成aⅴ人在线观看| 亚洲视频一区二区免费在线观看| 国产精品成人一区二区网站软件| 亚洲免费在线| 欧美一级在线视频| 亚洲国产成人高清精品| 亚洲人成啪啪网站| 国产日本欧美一区二区三区在线| 久久午夜电影网| 欧美国产日韩视频| 欧美亚洲免费在线| 久久亚洲美女| 亚洲视频欧美视频| 欧美伊人精品成人久久综合97| 永久域名在线精品| 亚洲麻豆一区| 在线日韩日本国产亚洲| 一本久道久久综合狠狠爱| 国产精品永久| 亚洲区一区二区三区| 国产日韩亚洲欧美精品| 美女网站久久| 国产精品免费网站| 亚洲国产精品一区制服丝袜| 国产精品天天看| 亚洲国内精品| 国产亚洲精品自拍| 99av国产精品欲麻豆| 亚洲福利久久| 欧美在线一区二区| 亚洲视频一区二区| 欧美777四色影视在线| 久久露脸国产精品| 国产欧美日韩一区二区三区| 亚洲美女视频在线观看| 亚洲第一区在线| 亚洲尤物影院| 亚洲私人影院在线观看| 美女国内精品自产拍在线播放| 久久不见久久见免费视频1| 欧美日韩精品中文字幕| 欧美韩国日本综合| **性色生活片久久毛片| 欧美在线1区| 性欧美18~19sex高清播放| 亚洲视频一区二区| 亚洲高清资源| 国产一区二区高清视频| 一本一道久久综合狠狠老精东影业| 亚洲成人在线视频网站| 香蕉久久精品日日躁夜夜躁| 亚洲一二三四区| 欧美日韩国产在线观看| 亚洲福利在线观看| 亚洲国产精品精华液2区45| 欧美一区二区三区精品| 欧美在线中文字幕| 国产三级精品在线不卡| 亚洲一区二区精品在线观看| 亚洲天堂偷拍| 欧美日韩一二三四五区| 亚洲国产专区校园欧美| 亚洲精品视频在线播放| 免费亚洲电影在线观看| 美女爽到呻吟久久久久| 伊人久久大香线蕉av超碰演员| 亚洲男女自偷自拍图片另类| 久久av一区| 在线观看日韩一区| 六月婷婷久久| 亚洲激情在线观看| 一区二区三区日韩欧美| 国产精品久久久久毛片大屁完整版 | 国产精品网站一区| 久久精品最新地址| 欧美成人有码| 亚洲视频久久| 国产日韩综合| 久久免费黄色| 亚洲人成网站色ww在线| 亚洲午夜av电影| 国产精品乱码一区二三区小蝌蚪| 亚洲欧美成人一区二区三区| 久久久夜精品| 亚洲精品日日夜夜| 国产精品久久9| 久久精品水蜜桃av综合天堂| 亚洲大胆女人| 亚洲小视频在线| 午夜精品短视频| 国内精品视频666| 欧美大片免费久久精品三p | 久久夜色精品国产亚洲aⅴ| 91久久在线观看| 国产精品久久久久久久午夜| 亚洲精品国产精品乱码不99按摩 | 美女图片一区二区| 一区二区三区免费网站| 久久琪琪电影院| 99精品国产在热久久婷婷| 国产女人aaa级久久久级| 久久一区二区三区av| 9久草视频在线视频精品| 老鸭窝毛片一区二区三区| 亚洲图片欧美午夜| 一区二区三区亚洲| 欧美午夜在线一二页| 久久久999| 亚洲欧美国产精品桃花| 亚洲国内自拍| 久久这里有精品15一区二区三区| 一本综合精品| 亚洲高清视频的网址| 国产精品一区二区在线观看不卡| 牛牛精品成人免费视频| 亚洲免费视频观看| 亚洲免费久久| 欧美福利精品| 美女啪啪无遮挡免费久久网站| 午夜精品国产更新| 在线亚洲美日韩|