Pull to refresh

Comments 4

Не так давно как раз думал над темой MVVM в UI Toolkit. Очень круто! С удовольствием приму участие в проекте, как найду время.

Библиотека очень нужная, но поход к байндингу uxml-first не нравится :(

Я бы предпочёл делать связку через код:

var counter = new ReactiveProperty<int>();
counter.SubscribeTo(root.Q<Text>("Count"));

Так что же вам не мешает это сделать?

public class MyFirstDocumentView : DocumentView<MyFirstViewModel>
{
    protected override void OnInit()
    {
        base.OnInit();

        RootVisualElement
            .Q<BindableTextField>("FirstNameTextField")
            .BindingValuePath = nameof(BindingContext.FirstName);

        RootVisualElement
            .Q<BindableTextField>("LastNameTextField")
            .BindingValuePath = nameof(BindingContext.LastName);

        RootVisualElement
            .Q<BindableLabel>("FullNameLabel")
            .BindingTextPath = nameof(BindingContext.FullName);
    }
}

Минус очевиден - лишний код, в котором могут быть допущены ошибки. И вам все равно в UXML файле необходимо будет задать имена компонентов. Так проще там сразу задать свойство для связывания, чем городить такой огород.

"И всё бы хорошо, но каково было моё удивление, что, проделав такую работу, они не предоставили механизма связывания данных, работающего в runtime." - с выходом Unity 6 добавили биндинги.

Sign up to leave a comment.

Articles