直接绑定到方法(x:Bind)

UWP的x:Bind标记在编译时完成绑定,提供优于Binding的性能。它可以绑定到静态或实例方法,用于事件处理,尤其是那些不需要参数且返回类型为void的方法。这种方法允许绑定的事件处理程序不仅限于页面或用户控件的成员,还能是其他类型的公开方法。示例展示了如何使用x:Bind将事件绑定到计算总价的静态方法。
摘要由CSDN通过智能技术生成

UWP提供了一个功能类似于Binding的XAML扩展标记——x:Bind。与Binding不同的是,x:Bind扩展标记是在编译阶段完成绑定,可以节省运行阶段的性能开销。正因为如此,x:Bind标记需要强类型的数据源,这意味着,x:Bind标记的绑定上下文不再是对象的DataContext属性,而是Page类与UserControl类,或者它们的派生类。

x:Bind标记的另一个亮点是:它可以直接绑定到方法,该方法可以是静态方法,也可以是实例方法,比较典型的一种应用场景就是将控件的某个事件直接与目标方法进行绑定。

注意,这种绑定方式与直接指定事件处理方法不同,直接指定的事件处理方法必须是当前控件所在的页面或用户控件的类成员,而通过x:Bind标记绑定的方法既可以是页面或用户控件中的成员, 也可以是其他类型中公开的方法(包括实例方法和静态方法)。

当事件需要通过x:Bind标记绑定到某个方法时,这个方法应当满足以下条件:

  • 方法返回类型为void。
  • 方法没有参数。
  • 方法的参数与事件所需要的参数个数、类型以及顺序匹配。
  • 方法的参数类型可以兼容事件参数的类型,如方法的两个参数皆为object,这样,传递给事件的参数都可以向该方法的参数赋值。

下面时一个简单的示例:

        <StackPanel Margin="20">
            <TextBox x:Name="txtBox1" Header="输入单价:" Text="0.00"/>
            <TextBox x:Name
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值