1

ReactiveUIの調査を始めたばかりですが、いくつか問題があります。

ReactiveObjectでは、プロパティに基づいてオブザーバブルを作成しようとしています...

public class StudentListViewModel : ReactiveObject, IStudentListViewModel
{
    public StudentListViewModel()
    {
        var observable = this.ObservableForProperty(x => x.SearchQuery);
    }

    string _SearchQuery;
    public string SearchQuery
    {
        get { return _SearchQuery; }
        set { this.RaiseAndSetIfChanged(x => x.SearchQuery, value); }
    }
}

...これは次のエラーにつながります:

MyApplication.ViewModels.StudentListViewModelのICreatesObservableForPropertyが見つかりませんでした。これは決して起こらないはずです、あなたのサービスロケーターはおそらく壊れています。

私はNinjectDIコンテナーとして使用し、次のようにReactiveUIに通知しようとしました。

class Bootstrapper : IBootstrapper
{
    public Bootstrapper()
    {
        Kernel = new StandardKernel();
        Kernel.Bind<IBootstrapper>().ToConstant(this);
        Kernel.Bind<IScreen>().ToConstant(this);
        Kernel.Bind<IViewFor<StudentListViewModel>>().To<StudentListView>();

        Router = new RoutingState();

        RxApp.ConfigureServiceLocator(
            (type, key) => Kernel.Get(type, key),
            (type, key) => Kernel.GetAll(type, key),
            (from, type, key) =>
                {
                    var binding = Kernel.Bind(from).To(type);
                    if (key != null)
                        binding.Named(key);
                }
            );
    }
}

誰かがここで問題を見ていますか?

4

1 に答える 1

1

「from」と「key」を切り替えました:

    RxApp.ConfigureServiceLocator(
        (type, key) => Kernel.Get(type, key),
        (type, key) => Kernel.GetAll(type, key),
        (from, type, key) =>
            {
                var binding = Kernel.Bind(type /*this was from*/).To(from /*ditto*/);
                if (key != null)
                    binding.Named(key);
            }
        );
于 2012-09-12T05:32:47.073 に答える