摘要:不負責任講座 Silverlight 3.0 #3,Binding(DataBinding?資料繫結?資料綁定?)
因為 Silverlight 3.0,我也是第一次接觸,(1.0 / 2.0版我都沒有碰過)
為了避免我個人的解釋或測試過程,出現錯誤
所以名為「不負責任講座」。
之前在 ASP.NET有提及一個很重要的觀念與應用,那就是「DataBinding?資料繫結?資料綁定?」
我寫了一系列的文章,有興趣的朋友可以去看看。
請看: DataBinding?資料繫結?資料綁定? ...
在 Silverlight裡面,也有 Binding這樣的觀念與動作。
本範例就是要簡單地解釋這個觀念。
本範例的參考資料,源自 http://msdn.microsoft.com/zh-tw/library/cc838207(VS.95).aspx
首先,我們先新增一個 Silverlight檔案,名為 Page2.xaml
最上方的 x:Class 與 xmlns:my,請依照實際情況修改、或自行新增
跟我們開啟VS 2008的專案名稱有關。
<navigation:Page xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightApplication2_Browser.Page2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:my="clr-namespace:SilverlightApplication2_Browser"
mc:Ignorable="d"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
d:DesignWidth="640" d:DesignHeight="480"
Title="Page2 Page">
<!-- 重點在於上面這兩行 xmlns:my="" 與 x:Class="" -->
<Grid x:Name="LayoutRoot">
<Grid.Resources>
<my:Dog x:Name="MyDog" DogName="皮皮" DogSize="大型犬"/>
</Grid.Resources>
<!-- 預設的資料來源 <my:Dog>,其中的 my: 就是上方的 xmlns:my -->
<ScrollViewer x:Name="PageScrollViewer" Style="{StaticResource PageScrollViewerStyle}">
<StackPanel x:Name="ContentStackPanel">
<TextBlock x:Name="HeaderText" Style="{StaticResource HeaderTextStyle}" Text="Page2"/>
<TextBlock x:Name="ContentText" Style="{StaticResource ContentTextStyle}" Text="Silverlight + Binding"/>
<TextBlock Text="{Binding DogName, Mode=OneTime}" DataContext="{StaticResource MyDog}" FontSize="20" />
<TextBlock Text="{Binding DogSize, Mode=OneTime}" DataContext="{StaticResource MyDog}" FontSize="20" />
</StackPanel>
</ScrollViewer>
</Grid>
</navigation:Page>
上述的 Binding動作,裡面有提到 Mode = OneTime。
我個人的說法是,這些東西在 ASP.NET / ADO.NET也有用過「資料繫結運算式」,例如:
<%# Bind(" ") %> (雙向繫結) 或是 <%# Eval(" ") %> (單向繫結),觀念應該很類似吧?
關於上述的觀念,我有另一篇文章說明 ---- 不負責任講座 Silverlight 3.0 #4,Binding(何謂One-Time / One_Way / Two-Way)
關於上面程式與標籤,裡面有提到 DataContext這個東西,可以參閱 ---- ASP.NET AJAX 4有什麼新玩意?
==================================================================================
這個程式,雖然資料來源、資料繫結,統統寫在 .xaml檔案裡面。
但後置程式碼,仍需要為這個資料來源,設定類別(Class)
只有下半部的程式,是自己加入的。 上半部的程式,原封不動。
02 Partial Public Class Page2
03 Inherits Page
04
05 Public Sub New()
06 InitializeComponent()
07 End Sub
08
09 '使用者巡覽至這個頁面時執行。
10 Protected Overrides Sub OnNavigatedTo(ByVal e As System.Windows.Navigation.NavigationEventArgs)
11
12 End Sub
13
14 End Class
15
16 '=================================================
17 '== 自己設定的 Class
18 '== 參考資料 http://msdn.microsoft.com/zh-tw/library/cc838207(VS.95).aspx
19 Public Class Dog
20
21 Private _DogName As String
22 Private _DogSize As String
23
24 Public Property DogName() As String
25 Get
26 Return _DogName
27 End Get
28 Set(ByVal value As String)
29 _DogName = value
30 End Set
31 End Property
32
33 Public Property DogSize() As String
34 Get
35 Return _DogSize
36 End Get
37 Set(ByVal value As String)
38 _DogSize = value
39 End Set
40 End Property
41 End Class
如果要使用 C#的範例,請參閱下列的微軟網站。
微軟的官方文件,針對這個範例,還有提供「資料來源寫在後置程式碼」的版本,很有參考價值。
請看:http://msdn.microsoft.com/zh-tw/library/cc838207(VS.95).aspx
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約 51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約 140hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.tw 或 school (at) mis2000lab.net
(1) 第一天 ASP.NET MVC5 完整影片(5.5小時 / .NET 4.x版)免費試聽。影片 https://youtu.be/9spaHik87-A
(2) 第一天 ASP.NET Core MVC 完整影片(3小時 / .NET Core 6.0~8.0)免費試聽。影片 https://youtu.be/TSmwpT-Bx4I
[學員感言] mis2000lab課程評價 - ASP.NET MVC , WebForm 。 https://mis2000lab.medium.com/%E5%AD%B8%E5%93%A1%E6%84%9F%E8%A8%80-mis2000lab%E8%AA%B2%E7%A8%8B%E8%A9%95%E5%83%B9-asp-net-mvc-webform-77903ce9680b
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
......... facebook社團 https://www.facebook.com/mis2000lab ......................
......... YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
ASP.NET MVC => .NET Core MVC 線上教學 ...... 第一天課程 完整內容 "免費"讓您評估 / 試聽
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講 事先錄好的影片,並非上課側錄! 觀看時,有如「一對一」面對面講課。