【问题标题】:How to compile bind to extension methods in UWP如何在 UWP 中编译绑定到扩展方法
【发布时间】:2022-07-16 02:14:47
【问题描述】:

我知道我以前做过,但我找不到以前的参考资料。 如果我有这样定义的类:

namespace MyNamespace1 {
    public class MyClass {}
}

然后是一个扩展方法和一些其他静态方法,定义如下:

namespace MyNamespace2 {
    public static class MyClassExt {
        public static string GetExtVal(this MyClass myClass) => "an extension val";
        public static string GetStaticVal(bool arg) => "a static val";
    }
}

我知道我可以通过首先添加对命名空间的引用来绑定到静态函数

    xmlns:ns1="using:Namespace1"
    xmlns:ns2="using:Namespace2"

然后这样称呼它

<DataTemplate x:DataType="ns1:MyClass">
    <TextBlock Text="{x:Bind ns2:MyClassExt.GetStaticVal(x:True)}" />
</DataTemplate>

但是,我怎样才能绑定到扩展方法呢?

我试过了:

<DataTemplate x:DataType="ns1:MyClass">
    <TextBlock Text="{x:Bind ns2:MyClassExt.GetExtVal(ns1:MyClass)}" />
</DataTemplate>

还有这个

<DataTemplate x:DataType="ns1:MyClass">
    <TextBlock Text="{x:Bind ns2:MyClassExt.GetExtVal()}" />
</DataTemplate>

但是这些都不会编译。

我一直在寻找 herehere,但没有看到我想要的。

【问题讨论】:

    标签: c# uwp uwp-xaml


    【解决方案1】:

    添加一组额外的括号就可以了:

    <DataTemplate x:DataType="ns1:MyClass">
        <TextBlock Text="{x:Bind ns2:MyClassExt.GetExtVal((ns1:MyClass))}" />
    </DataTemplate>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-10
      • 2019-07-19
      • 1970-01-01
      相关资源
      最近更新 更多