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

arrow
arrow
    全站熱搜

    小賢 發表在 痞客邦 留言(0) 人氣()