4

だから私はiOSでMvvmCrossとMonotouch.Dialogをいじっていて、かなり些細なことをするとバインディングの問題が発生します - 実際、スチュアートのn + 1ビデオの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