[Windows Phone] 清單項目使用項目樣板(ItemTemplate)下

本篇文章與前篇 清單項目使用項目樣板(ItemTemplate)上 一樣,只是多加一個功能,能將自己所選擇的資料更詳細的顯示在下面。

前言

本篇文章與前篇 清單項目使用項目樣板(ItemTemplate)上 一樣,只是多加一個功能,能將自己所選擇的資料更詳細的顯示在下面。

 

示範

Step1、建立一個新專案

SNAGHTML8a2a1

 

Step2、畫面設計

以 XAML 建立項目控制項,如下圖:

image

 

產生的 XAML 程式碼如下:

<StackPanel x:Name="ContentPanel" Grid.Row="1" Orientation="Vertical" Margin="12,0,12,0">
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="學號" FontSize="20" Margin="5,10" />
                <TextBlock Text="姓名" FontSize="20" Margin="30,10" />
                <TextBlock Text="生日" FontSize="20" Margin="44,10" />
            </StackPanel>
            <ListBox x:Name="ListBox1" 
                       Width="450" Height="200" HorizontalAlignment="Left"
                       ItemsSource="{Binding}" >
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding StuNo}"  FontSize="20" Margin="5,10" />
                            <TextBlock Text="{Binding StuNa}"  FontSize="20" Margin="20,10" />
                            <TextBlock Text="{Binding BirDate}"  FontSize="20" Margin="30,10" />
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>

            <StackPanel x:Name="detailCusRec">
                <TextBlock Text="{Binding ElementName=ListBox1, Path=SelectedItem.StuNo}" FontWeight="Bold" />
                <TextBlock Text="{Binding ElementName=ListBox1, Path=SelectedItem.StuNa}" FontStyle="Italic"/>
                <TextBlock Text="{Binding ElementName=ListBox1, Path=SelectedItem.BirDate}"  />
            </StackPanel>
</StackPanel>

 

Step3、在 MainPage.cs 程式碼中撰寫事件處理函式:

public partial class MainPage : PhoneApplicationPage
    {
        public ObservableCollection<StuRec> stuRec = new ObservableCollection<StuRec>();
        public MainPage()
        {
            InitializeComponent();
            stuRec.Add(new StuRec("10014501", "張小美", new DateTime(1995, 11, 22)));
            stuRec.Add(new StuRec("10014502", "劉阿貓", new DateTime(1996, 1, 5)));
            stuRec.Add(new StuRec("10014503", "王小明", new DateTime(1984, 10, 19)));
            // Set the data context for the list box.
            ListBox1.DataContext = stuRec;
        }
        public class StuRec
        {
            public StuRec() { }
            public StuRec(string stuNo, string stuNa, DateTime birDate)
            {
                StuNo = stuNo;
                StuNa = stuNa;
                BirDate = birDate;
            }
            public string StuNo { get; set; }
            public string StuNa { get; set; }
            public DateTime BirDate { get; set; }

            // 改寫ToString 方法
            public override string ToString()
            {
                return "學號:  " + StuNo + " 姓名:  " + StuNa + " 的學生," + "\n" +
                            "生日為 " + BirDate.ToShortDateString();
            }
        }
}

 

結果

執行時,會出現你所打的資料

image

 

點擊一筆資料,下方會顯示

SNAGHTML16421e