作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 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/
我是一名优秀的程序员,十分优秀!