我有ItemCell
继承自MvxTableViewCell
。以下简化:
构造:
public ItemCell(IntPtr handle) : base(handle)
{
CreateLayout();
InitializeBindings();
}
CreateLayout()
创建和约束其他元素:
UILabel
_label
和UIButton
_button
InitializeBindings :
private void InitializeBindings()
{
this.DelayBind(() =>
{
var set = this.CreateBindingSet<ItemCell, ItemViewModel>();
set.Bind(_label).For(x => x.Text).SourceDescribed("'Label: ' + ItemNumber");
set.Bind(_button).To(vm => vm.ItemCommand);
set.Apply();
});
}
ViewModel 包含以下属性和命令:
private string _itemNumber;
public string ItemNumber
{
get { return _itemNumber; }
set { SetProperty(ref _itemNumber, value); }
}
private IMvxCommand _itemCommand;
public IMvxCommand ItemCommand
{
get
{
return _itemCommand?? (_itemCommand= new MvxCommand(() => {
//Logic
}));
}
}
当TableView
绑定到一个集合并重复单元格时,_label
的文本会呈现正确的值(&#34;标签:{ItemNumber}&#34; ),但点击该按钮并未点击ItemCommand
get
。我也尝试将.For("TouchUpInside")
添加到按钮的绑定中,但这并没有改变任何内容。
我很困惑为什么标签正确绑定,但按钮没有。
答案 0 :(得分:4)
不幸的是,我没有足够的积分来添加评论,所以我将添加我的建议作为答案。
可能发生的事情是触摸事件是针对整个单元格处理的,因此事件不会传递给孩子们那个细胞。您的按钮可能正确绑定,但由于您的单元格中的按钮永远不会收到触摸事件,您绑定的命令永远不会被解雇
修改强>
您可以查看此链接,它似乎可以解决您的问题。 http://pandas.pydata.org/pandas-docs/stable/reshaping.html
答案 1 :(得分:0)
调试输出(Mvx.Trace())UIButton的界限。即使它被显示,它的&#34;界限&#34;可能是0.在这种情况下,不会发生任何交互,您必须修复布局(约束或框架)。