如何将对象传递到Xamarin表单自定义渲染器?

如何将对象传递到Xamarin表单自定义渲染器?,xamarin,xamarin.forms,Xamarin,Xamarin.forms,如何将某个对象的实例传递给Xamarin Forms自定义渲染 这是自定义渲染器 public类LoginPageRenderer:PageRenderer { 公共覆盖无效视图显示(布尔动画) { .... } } 这就是我想做的。。。。(请注意,已添加了ctor…) public类LoginPageRenderer:PageRenderer { 二等兵somefoou SomeFoo; 公共登录发布者(MyFoo someFoo) { _someFoo=someFoo; } 公共覆盖无效视

如何将某个对象的实例传递给Xamarin Forms
自定义渲染

这是自定义渲染器

public类LoginPageRenderer:PageRenderer
{
公共覆盖无效视图显示(布尔动画)
{
....
}
}
这就是我想做的。。。。(请注意,已添加了ctor…)

public类LoginPageRenderer:PageRenderer
{
二等兵somefoou SomeFoo;
公共登录发布者(MyFoo someFoo)
{
_someFoo=someFoo;
}
公共覆盖无效视图显示(布尔动画)
{
....
}
}
最后,这是调用此视图的地方(在代码的其他部分中)


wait\u navigationPage.Navigation.PushModalAsync(new LoginPage())

如果在
LoginPage
对象中定义了一个可公开访问的属性,则可以使用
元素.NameOfYourProperty
语法在
呈现程序中引用它

PureKrome更新 示例代码

LoginPage.cs(在您的PCL公共项目中)

LoginPageRenderer.cs(在您的iOS项目中)


您是指
静态公共属性
?这并不是我真正希望的答案——我讨厌使用静力学,并尽量避免使用它们。只需将渲染器中的Element属性转换为LoginPage,就可以以非静态方式访问属性。OMG。那个工作!我从来没有读过关于这个
元素
属性以及它在渲染器中是如何访问的,等等。很高兴能提供帮助!除非您深入研究示例代码,否则它并没有很好的文档记录。如果你需要更多信息,请告诉我。我已经用一些代码更新了你的答案。。你能不能回顾一下,确保你的想法符合目标。
namespace Foo
{
    public class LoginPage : ContentPage
    {
        private readonly Foo _foo;

        public LoginPage(Foo foo)
        {
            _foo = foo;
        }

        public Foo Foo { get; private set; }
    }
}
[assembly: ExportRenderer (typeof (LoginPage), typeof (LoginPageRenderer))]

namespace Foo.iOS
{
    public class LoginPageRenderer : PageRenderer
    {
        private Foo Foo
        {
            get
            {
                var loginPage = Element as LoginPage;
                return loginPage == null
                    ? null
                    : loginPage.Foo; 
            }
        }

        public override void ViewDidAppear (bool animated)
        {
            if (string.IsNullOrWhitespace(Foo.SecretName))
            { ... }

            ...
        }
    }
}