Xamarin получит нативный контроль в пользовательском рендерере - PullRequest
0 голосов
/ 26 августа 2018

У меня есть два пользовательских представления (HybridEntry и HybridSlider) с настраиваемыми средствами визуализации для каждой платформы.В пользовательских средствах визуализации HybridSlider должен использовать некоторые специфичные для платформы функции HybridEntry.

Короче говоря, я хочу получить доступ к собственному элементу управления HybridEntry внутри пользовательских средств визуализации HybridSlider.

Я мог бы передать ссылку на Forms HybridEntry классу Forms HybridSlider в xaml, объявивсвойство с именем HybridEntry внутри класса HybridSlider.

XAML:

<local:HybridEntry x:Name="hybridEntry"></local:HybridEntry>
<local:HybridSlider HybridEntry="{x:Reference hybridEntry}"></local:HybridSlider>

Пользовательский рендерер HybridSlider в UWP -

using Windows.UI.Xaml.Controls;
using Xamarin.Forms.Platform.UWP;

[assembly: ExportRenderer(handler: typeof(Core.CustomView.HybridSlider), target: typeof(Demo.UWP.Renderers.HybridSliderwRenderer))]
namespace Demo.UWP.Renderers
{
    public class HybridSliderwRenderer : ViewRenderer<Core.CustomView.HybridSlider, UserControl>
    {
        protected override void OnElementChanged(ElementChangedEventArgs<Core.CustomView.HybridSlider> e)
        {
            base.OnElementChanged(e);

            if (Control == null)
            {
                var formsHybridEntry = e.NewElement.HybridEntry;

                Demo.UWP.HybridEntry uwpEntry= (Demo.UWP.HybridEntry)formsHybridEntry; // I WANT TO GET THE NATIVE control here
            }
        }
    }
}

Как могЯ получаю доступ к собственному классу управления, который связан с классом HybridEntry внутри пользовательского средства визуализации HybridSlider?

1 Ответ

0 голосов
/ 27 августа 2018

Этот пост в блоге посвящен получению собственного элемента управления для общего элемента управления.

http://michaelridland.com/xamarin/creating-native-view-xamarin-forms-viewpage/

Для UWP это может быть очень похоже на определение метода RendererFactory.GetRenderer (view).Но это может быть уже устаревшим.Если это так, вы найдете самые современные подходы в Интернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...