在.Droid下面有以下片段:
public class DigestItemFragment : MvxFragment<DigestItemViewModel>
在此范围内,我为一个以编程方式创建的按钮设置了一个绑定。
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
this.EnsureBindingContextIsSet(savedInstanceState);
View view = this.BindingInflate(Resource.Layout.DigestItemFragment, null);
LinearLayout ls = view.FindViewById<LinearLayout>(Resource.Id.lakeside);
Button btn = new Button(container.Context);
string buttonText = "Get Down";
btn.SetHeight(100);
btn.SetWidth(300);
btn.SetText(buttonText.ToCharArray(), 0, buttonText.Length);
btn.SetBackgroundColor(Color.Gray);
btn.SetPadding(20, 20, 20, 20);
ls.AddView(btn);
var owner = this as IMvxBindingContextOwner;
var set = owner.CreateBindingSet<IMvxBindingContextOwner, DigestItemViewModel>();
set.Bind(btn)
.To(vm => vm.TimeSlotButtonOkCommand)
.WithFallback(btn);
set.Apply();
return view;
}
单击该按钮时,我可以在DigestItemViewModel中调用TimeSlotButtonOkCommand,但是,视图模型的所有属性值似乎都为null。
这个问题的一个可能原因可能是我如何通过使用IMvxBindingContextOwner而不是DigestItemFragment创建绑定集(请参阅下面的代码片段),但遗憾的是我在创建绑定时无法弄清楚如何使用DigestItemFragment集。
var set = owner.CreateBindingSet<IMvxBindingContextOwner, DigestItemViewModel>();
关于我做错了什么的想法以及为什么DigestItemViewModel属性都在TimeSlotButtonOkCommand中设置为null?
答案 0 :(得分:0)
抱歉...我的错误。在创建片段列表时,我没有正确初始化相关的视图模型。