如何使用Xamarin.Mac设置依赖项属性?

时间:2014-07-10 21:59:02

标签: macos cocoa xamarin nsobject xamarin.mac

我有以下几个属性的对象:

public class Test : NSObject
{
    [Export("formattedFoo")]
    public string FormattedFoo { get { return string.Format("Test {0}", Foo); } }

    [Export("foo")]
    public string Foo { get; set; }
}

在Interface Builder中,我有一个绑定到foo的文本字段和一个绑定到formattedFoo的标签。只要用户在文本字段中键入文本,就会按预期更新Foo属性。但是,标签不会更新。

我怀疑为了将fooformattedFoo之间的依赖关系传达给Cocoa,我需要实现一些东西,但我不确定是什么。

在有人跳过建议我在IB中使用格式化表达式之前,这不是一个真正的选项,因为上面是现实生活场景的一个极其简单的例子。

1 个答案:

答案 0 :(得分:0)

想出来,这里是相关的资源:

需要使用以下方法扩展代码:

[Export("keyPathsForValuesAffectingFormattedFoo")]
public static NSSet GetDependenciesForFormattedFoo()
{
     return new NSSet("foo");
}

基本上,您必须拥有一个public static方法,其名称以“keyPathsForValuesAffecting”开头,并以具有依赖项的属性的名称结尾。