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