Как привязать к макету View_weight в MvvmCross?
Какой самый простой способ привязать вес View (или любого другого элемента управления Android)? Поскольку у этого свойства нет установщика, я пробовал настраивать привязку, но id, похоже, не работает:
public class ViewWeightCustomBinding : MvxAndroidTargetBinding
{
public ViewWeightCustomBinding(object target) : base(target)
{
}
public override Type TargetType
{
get { return typeof (int); }
}
protected override void SetValueImpl(object target, object value)
{
var realTarget = target as View;
if(target == null)
return;
ViewGroup.LayoutParams layoutParameters = realTarget.LayoutParameters;
realTarget.LayoutParameters = new LinearLayout.LayoutParams(layoutParameters.Width, layoutParameters.Height,
(int) value);
}
}
регистрация в настройке:
protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
{
registry.RegisterFactory(new MvxSimplePropertyInfoTargetBindingFactory(typeof(ViewWeightCustomBinding), typeof(View), "ViewWeight"));
base.FillTargetFactories(registry);
}
И .axml
<View
android:layout_width="0dp"
android:layout_height="3dp"
android:background="@color/green_holo"
local:MvxBind="ViewWeight Id" />
Я вижу Waring в окне отладки:
[0:] MvxBind: Предупреждение: 5.20 Не удалось создать целевую привязку для привязки ViewWeight для идентификатора [0:] MvxBind: Предупреждение: 5.20 Не удалось создать целевую привязку для привязки ViewWeight для идентификатора 01-31 10: 54: 57.247 I / mono- stdout (3795): MvxBind: Предупреждение: 5.20 Не удалось создать целевую привязку для привязки ViewWeight for Id