我有这个代码:

public partial class PhrasesFrameRenderer : Frame
{
    Random rand = new Random();
    private int answeredPhraseCount;
    private int correctAns;

    public PhrasesFrameRenderer()
    {
        InitializeComponent();
        App.PhrasesFrameRenderer = this;

        public void abc()
        {

            ....
        };

和自定义渲染器
[assembly: ExportRenderer(typeof(PhrasesFrameRenderer), typeof(PhrasesFrameCustomRenderer))]
namespace Japanese.iOS
{
    public class PhrasesFrameCustomRenderer : FrameRenderer
    {
        UISwipeGestureRecognizer leftSwipeGestureRecognizer;
        UISwipeGestureRecognizer rightSwipeGestureRecognizer;
        PhrasesFrameRenderer frame;
        bool rightSwipeEnabled = false;

有人可以向我解释如何从自定义渲染器代码中调用短语 FrameRenderer 中的 ABC 函数。

最佳答案

在您的 CustomRenderer 中,Element 属性基本上是您在 PCL Xamarin Forms 类中声明的 View PhrasesFrameRenderer
您只需要将此属性转换为类,您就可以访问所有公共(public)方法和属性。

var frame = (PhrasesFrameRenderer)Element;
frame.abc();

或者
var frame = Element as PhrasesFrameRenderer;

if(frame != null)
    frame.abc();

这应该有效。

一个注意事项 :我不会将自定义 View 称为渲染器,因为这会与其实际渲染器产生混淆。您的自定义框架可以命名为 PhrasesFrame

关于xamarin - 如何从 iOS 自定义渲染器调用基本帧渲染器中的方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44953267/

10-12 19:19