gpt4 book ai didi

c# - 如何从xaml传递回调方法? (Xamarin.form 和 WPF)

转载 作者:行者123 更新时间:2023-12-02 18:15:16 25 4
gpt4 key购买 nike

我正在 Xamarin 表单上制作自定义图像按钮。但下面我的代码不起作用。

运行时错误消息:

Position 26:34. Cannot assign property "buttonCallback": type mismatch between "System.String" and "XXX.CircleImageButton+ClickedDelegate"

从 xaml 传递回调方法的正确方法是什么?你如何称呼这种技术?

谢谢。

myxaml.xaml

<local:CircleImageButton buttonCallback="buttonCallback"...

myxaml.xaml.cs

void buttonCallback()
{
...
}

CircleImageButton.cs

using System;
using ImageCircle.Forms.Plugin.Abstractions;
using Xamarin.Forms;

namespace XXX
{
public class CircleImageButton : CircleImage
{
public delegate void ClickedDelegate();
public ClickedDelegate buttonCallback { set; get; }

public CircleImageButton ()
{
this.GestureRecognizers.Add (new TapGestureRecognizer{
Command = new Command(() => {
this.Opacity = 0.6;
this.FadeTo(1);
this.buttonCallback();
})
});
}
}
}

最佳答案

只需将代码更改为:

public event ClickedDelegate buttonCallback;
<小时/>

建议

对于自定义事件,我会使用以下结构:

MyBarElement

宣告

public event EventHandler FooHappend;

调用

FooHappend?.Invoke(this, EventArgs.Empty);

页面

然后你就可以使用

<MyBarElement FooHappend="OnFooHappend"></MyBarElement>

在你的代码后面

private void OnFooHappend(object sender, EventArgs eventArgs)
{

}

关于c# - 如何从xaml传递回调方法? (Xamarin.form 和 WPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37060701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com