Xamarin xaml 编码标准

Xamarin xaml coding standarts

我是 Xamarin 的自学者。我已经开始从他们网站上的 Miscrosoft 教程中学习它。他们建议 xaml 代码看起来像

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:minWidth="25px"
    android:minHeight="25px">

    <Button
        android:text="Add New Recepie"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/generalAddButton"
        android:bufferType="normal" />
    <ListView
        android:minWidth="25px"
        android:minHeight="25px"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/recepeListView" />
</LinearLayout> 

但是当我在 Lynda.com 上看一些视频时,建议的代码风格是

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Paperboy.Pages.ListViewPage1"
             Title="ListView">
  <ListView Margin="20" ItemsSource="{Binding ItemsGrouped}"
            ItemTapped="Handle_ItemTapped"
            ItemSelected="Handle_ItemSelected"
            HasUnevenRows="true"
            GroupShortNameBinding="{Binding Key}"
            IsGroupingEnabled="true"
            GroupDisplayBinding="{Binding Key}"
            IsPullToRefreshEnabled="true"
            CachingStrategy="RecycleElement"
            IsRefreshing="{Binding IsBusy, Mode=OneWay}"
            RefreshCommand="{Binding RefreshDataCommand}">
    <ListView.Header>
      <StackLayout Padding="10" 
                   Orientation="Horizontal"
                   HorizontalOptions="FillAndExpand"
                   BackgroundColor="#dadada">
        <Label Text="Header"
               HorizontalTextAlignment="Center"
               HorizontalOptions="FillAndExpand"
               TextColor="Black"
               FontAttributes="Bold"/>
      </StackLayout>
    </ListView.Header>
    <!--Built in Cells-->
    <ListView.ItemTemplate>
      <DataTemplate>
        <TextCell Text="{Binding Text}"
                  Detail="{Binding Detail}"/>
      </DataTemplate>

最大的区别在于代码和 UI 之间的绑定。 Microsoft 使用“+id/ID”符号,而 Lynda 的人使用 "x:ID" 和“{Binding ID}”符号。 在现实世界中什么更正确/更常见/更有用?特别是如果我想下载一些预定义的 UI xaml 模板。

你的第一个例子是 Xamarin Android UI 布局(不是 XAML),而你的第二个例子是 Xamarin 表单 XAML。这是两个完全不同的东西。

https://docs.microsoft.com/en-us/xamarin/xamarin-forms/xaml/xaml-basics/