4

因此,我在 iOS 中使用 MvvmCross 和 Monotouch.Dialog,当我做一些非常微不足道的事情时遇到了绑定问题 - 事实上,在 Stuart 的 n+1 视频之一中几乎逐字逐句地完成了。

鉴于以下观点:

[Register("FirstView")]
public class FirstView : MvxDialogViewController
{
    public override void ViewDidLoad()
    {
        base.ViewDidLoad();
        var bindings = this.CreateInlineBindingTarget<FirstViewModel>();

        Root = new RootElement("Example Root")
        {

            new Section("Search")
            {
                new EntryElement("SearchString", "Search String").Bind(bindings, vm => vm.SearchString)
            }
        };

    }
}

和这个 ViewModel:

public class FirstViewModel : MvxViewModel
{
    private string _searchString = "search string";
    public string SearchString
    {
        get
        {
            return _searchString;
        }
        set
        {
            _searchString = value; 
            RaisePropertyChanged(() => SearchString);
        }
    }

}

导航到此视图时,我从 Mvx 收到以下错误:

2013-08-22 14:44:51.766 TestApp[11581:c07] MvxBind:Error:  2.02 Empty binding target passed to MvxTargetBindingFactoryRegistry
[0:] MvxBind:Error:  2.02 Empty binding target passed to MvxTargetBindingFactoryRegistry
[0:] 
2013-08-22 14:44:51.869 TestApp[11581:c07] MvxBind:Warning:  2.10 Failed to create target binding for to 
[0:] MvxBind:Warning:  2.10 Failed to create target binding for to 

我不确定为什么绑定失败。如果我在 SearchString 的“Get”中设置一个断点,我确实看到它被击中了。但是,更改条目元素的值不会触发“设置”。

有什么想法吗?

4

1 回答 1

7

Stuart 的猜测是正确的:我需要做的就是将我的 Setup 类更改为从MvxTouchDialogSetup继承。

于 2013-08-23T02:51:25.777 回答