#xamarin #xamarin.forms
#xamarin #xamarin.forms
Вопрос:
У меня есть этот пример в моем приложении:
<?xml version="1.0" encoding="utf-8"?>
<Grid xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:J;assembly=J"
x:Class="J.Templates.HelpGrid"
Padding="15"
RowSpacing="10"
ColumnSpacing="10" />
и в c#
using System;
using System.Collections.Generic;
using Xamarin.Forms;
namespace J.Templates
{
public partial class HelpGrid : Grid
{
public HelpGrid()
{
InitializeComponent();
}
}
}
Из того, что я вижу, код работает, и я могу использовать этот шаблон без моего кодирования на внутреннем c #.
Есть ли какая-либо причина, по которой разработчик, возможно, решил добавить внутренний код C #?
Ответ №1:
Вспомогательный класс (файл c #) необходим компилятору для работы, на данный момент вы не можете этого избежать.
Теоретически можно исключить необходимость в классе backing, но это непросто сделать.
Они могли бы добавить новую задачу в конвейер компиляции, но это сильно замедлит сборку (больше xaml, медленнее).
В конце очень мало преимуществ и много работы, оно того не стоит.
Вы можете прочитать полное объяснение, сделанное сотрудниками Xamarin, здесь: https://github.com/xamarin/Xamarin .Формы / выпуски/4327#issuecomment-436921856