App樣式:
1.Pivots
2.Tabs
3.Hub & Spoke
4.Master Detail
5.Hamburger(無內建,有Icon Glyph: 0xE700, FontSize: 24, FontFamily: Segoe MDL2 Assets)
對應的Control:
1.Pivot
2.AppBar
3.Hub
4.SplitView (new)
CommandBar vs AppBar:
在Win10中,儘可能使用CommandBar取代AppBar(保留AppBar,是為了相容從8.1 App移轉到Win10)
----------------------------------------------------------------------
Compiled Binding:
1.一種新的Xaml DataBinding機制
2.將繁重的工作交由編譯時期完成,而非執行時期
3.Binding的宣告將會被轉換成Code behind C#程式碼
4.將可被檢查及Debug
5.使用 x:Bind 將在建置時期時驗證
6.強型別 ( Context 為自己Page / UserControl)
7.為了效能,{X:Bind} 預設值為OneTime ( 一般的{Binding}預設值為OneWay)
8.x:Phase="1" 可用於DataTemplate中,決定Render的優先權(由1開始,可非連續數字),可讓ListView更順暢的顯示
9.Event Binding <Button Click="{x:Bind Click}" /> ( void Click(), void Click(object sender, RoutedEventArgs e) )
10.Bindings.Update() 可用於更新OneTime Binding的資料 ,另有 Bindings.StopTracking() 停止追蹤資料變更, Bindings.Initialize() 初始化
11.關於{x:Bind}
(1) 如果RelativeSource=Self: 由於{x:Bind}的Binding Context是固定的(Page / UserControl),所以在這個情境下,可使用ElementName
(2) 如果RelativeSource=TemplatedParent: 由於{x:Bind}不支援ControlTemplate,所以必須用TemplateBinding 來取代
(3) 由於{x:Bind}的Binding Context是固定的(Page / UserControl),不會隨著SubElement做改變(除了Template),所以想要存取較內層的資料,有兩個方法如下
1.可使用較長的BindingPath(e.g. PageModel.List.FirstName)
2.加入一個Property到Page,然後Bind它
參考資料:
1.Universal Commanding and Navigation in Your XAML
2.Data Binding: Boost Your Apps' Performance Through New Enhancements to XAML Data Binding
留言列表