Я разрабатываю приложение с Xamarin и MVVMCross, и у меня возникают проблемы с созданием констант NSLayoutConstraints.Как правильно привязать константу NSLayoutConstraint?
У меня есть представление с Subview, которое должно «исчезнуть», если в определенном списке <> нет элементов, а содержимое ниже должно двигаться вверх, а не оставлять его пустым.
Для этого я добавил NSLayoutConstraint к этой точке зрения, чтобы быть в состоянии изменить его высота программно и я связать его с помощью следующей строки кода:
var set = this.CreateBindingSet<ActivityView, ActivityViewModel>();
set.Bind (ConstraintHeightPictures).To (vm => vm.Activity.ImageList.Count).For (cons => cons.Constant).WithConversion ("CountToConstraintHeight", Constants.HeightActivityImages);
set.Apply();
CountToConstraintHeightConverter довольно прост, он просто проверяет, если значение равно 0, чтобы вернуть 0 или иначе значение высоты по умолчанию (Constants.HeightActivityImages).
Код не дает ошибки выполнения и проходит через Конвертер, но когда я запускаю приложение, представление все еще существует, пустое.
С другой стороны, если я запускаю следующую строку кода внутри ViewWillLayoutSubviews
, она отлично работает, но не привязана.
ConstraintHeightPictures.Constant = ViewModel.Activity.ImageList.Count > 0 ? Constants.HeightActivityImages : 0.0f;
Любые идеи?
Большое спасибо!
Jordi
Спасибо Stuart! Оно работает! :) –
:) Если есть какие-либо обновления, необходимые для ответа, пожалуйста, отредактируйте их и улучшите их :) – Stuart