C# Windows 8 & 8.1 開發,使用程式碼動態產生GridView,並放入可GridItem的資料。

  • 1511
  • 0
  • C#
  • 2015-06-10

一般我們在撰寫Windows Store App時,常常會利用Xaml來排版,但是在Xaml上排版就是死的,若我們的資料是不固定的且是變動、格式不固定的,或許我們可以利用C#程式碼動態創建Xaml上的控制項,如我們常用的GridView。

本篇文章將引導您使用C#程式碼動態產生GridView。

一般我們在撰寫Windows Store App時,常常會利用Xaml來排版,但是在Xaml上排版就是死的,若我們的資料是不固定的且是變動、格式不固定的,或許我們可以利用C#程式碼動態創建Xaml上的控制項,如我們常用的GridView。

 

本篇文章將引導您使用C#程式碼動態產生GridView。

 

假設我們要設計一個GridView中加入一GridItem的話,通常在Xaml中我們會有兩種寫法,

第一種就是每個GridItemk的格式不一樣:

 

   1:  <GridView x:Name="GridView_Root" 
   2:            IsItemClickEnabled="False"  
   3:            SelectionMode="None"  
   4:            IsSwipeEnabled="false" 
   5:            Margin="116,0,0,0" 
   6:            Padding="0,0,0,50">
   7:      <GridViewItem>
   8:          <StackPanel x:Name="GridItem1"/>
   9:      </GridViewItem>
  10:      <GridViewItem>
  11:          <Grid x:Name="GridItem2"/>
  12:      </GridViewItem>
  13:  </GridView>

 

第二種就是採用DataTemplate,但不在本篇文章中所要探討的重點。

參閱

C# Windows Phone 8 ,使用Binding創建ListBox的子項目,並解決資料更新後UI沒更新的窘境 !!

C# Windows Phone 8 在程式碼中存取Xaml中的DataTemplate使用,即時改變ListBox的樣式。

 

那要寫出與上述第一種的呈現方式一樣,在C#應該這樣寫:

 

   1:  GridView GridView_Root = new GridView() { 
   2:      IsItemClickEnabled=false,
   3:      SelectionMode = ListViewSelectionMode.None,
   4:      IsSwipeEnabled=false,
   5:      Margin=new Thickness(116,0,0,0),
   6:      Padding=new Thickness(0,0,0,50)
   7:  };
   8:  StackPanel GridItem1 = new StackPanel();
   9:  Grid GridItem2 = new Grid();
  10:   
  11:  GridView_Root.Items.Add(GridItem1);
  12:  GridView_Root.Items.Add(GridItem2);

 

要注意SelectionMode的屬性並不是去SelectionMode裡面找而是ListViewSelectionMode !!

如此一來我們便可以在C#程式碼中動態產生GridView囉!

 

References : How to change the interaction mode

 

文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 !  感謝。

SUKI

HOLIESTAR