一般我們在撰寫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
文章中的敘述如有觀念不正確錯誤的部分,歡迎告知指正 謝謝
轉載請註明出處,並且附上本篇文章網址 ! 感謝。