У меня есть собственный редактор, который я использую для iOS, но для UWP я использую другой редактор под названием SfRichTextEditor
.
Теперь мне интересно, как я могу создать как разделяемый класс, поскольку у них есть те же самые связываемые свойства вместо того, чтобы делать то, что я делаю сейчас, то есть создает ContentView
поверх них, что вызывает:
ненужное вложение для повышения производительности
повторяющийся код
похоже есть проблемы с некоторыми привязками (не проверено, но что-то странное).
<ContentView> <OnPlatform x:TypeArguments="View"> <OnPlatform.Platforms> <On Platform="iOS"> <controls:CustomIOSEditor/> </On> <On Platform="UWP"> <controls:CustomUWPEditor/> </On> </OnPlatform.Platforms> </OnPlatform> </ContentView>
Поэтому вместо этого подхода я хочу иметь общий базовый класс, если это возможно, чтобы повторно использовать код.
Это элементы управления x2, которые у меня есть сегодня.
Мой пользовательский элемент управления iOS:
public class CustomIOSEditor : Editor // Using regular xamarin editor
{
public static readonly BindableProperty StringResultCommandProperty =
BindableProperty.Create(
nameof(StringResultCommand),
typeof(ICommand),
typeof(CustomIOSEditor),
default(ICommand));
public object StringResultCommandParameter
{
get => GetValue(StringResultCommandParameterProperty);
set => SetValue(StringResultCommandParameterProperty, value);
}
}
Мой пользовательский элемент управления UWP:
public class CustomUWPEditor : SfRichTextEditor // Using SfRichTextEditor instead here.
{
public static readonly BindableProperty StringResultCommandProperty =
BindableProperty.Create(
nameof(StringResultCommand),
typeof(ICommand),
typeof(CustomUWPEditor),
default(ICommand));
public object StringResultCommandParameter
{
get => GetValue(StringResultCommandParameterProperty);
set => SetValue(StringResultCommandParameterProperty, value);
}
}
Последняя подсказка ** ОБНОВЛЕНИЕ ** Общий .csproj: