2012-11-23 31 views
1

我建了一个MvxBindableSpinner到我的Android的应用程序:MVVMCross微调 - SelectedItem不工作?

<TableRow> 
    <TextView    
     android:text="Mandant:" 
     android:width="0px" 
     android:layout_weight=".22" /> 
     <cirrious.mvvmcross.binding.android.views.MvxBindableSpinner 
     android:layout_weight=".78" 
     local:MvxDropDownItemTemplate="@layout/mandantlistitem_dropdown" 
     local:MvxItemTemplate="@layout/mandantlistitem" 
     local:MvxBind="{'ItemsSource':{'Path':'Mandanten'},'SelectedItem':{'Path':'SelectedMandant','Mode':'TwoWay'}}"/> 
</TableRow> 

的MandantClass很简单:

//Class 
public class Mandant 
{ 
    //Properties 

    public string MandantBezeichnung { get; set; } 
} 

我是,那的SelectedItem不工作的问题..其送花儿给人“空”无论我选择..上的视图模型的的SelectedItem的属性看起来是这样的:

private string selectedMandant; 
    public string SelectedMandant 
    { 
     get { return selectedMandant; } 
     set { selectedMandant = value; FirePropertyChanged(() => SelectedMandant); } 
    } 

我什么都试过,但不能得到它的工作..它编译罚款和没有errormessages ..但其始终为空..也许有人可以帮助我?

+1

另一件事...如果你需要它们,有缩写可用 - 所以'cirrious.mvvmcross.binding.android.views.MvxBindableSpinner'可以写成'Mvx.MvxBindableSpinner' - 希望能帮助 – Stuart

+0

非常感谢这个技巧,我能解决问题 – eMi

+1

当你得到第二个时,它可能是很好说,如何:)当别人碰到同样的问题,并发现这个问题,那么他们会感兴趣:) – Stuart

回答

1

我可以提出一些关于如何调试/修复这个问题的建议。

MvxBindingTrace.TraceBindingLevel = MvxTraceLevel.Diagnostic; 

这是否揭示什么是失败的任何详细信息:在你的代码调用某个地方 -


首先,可以在设置绑定跟踪级别诊断?


第二,如果你链接到源代码,然后尝试设置一个断点和/或添加内_spinner_ItemSelected一些额外的一丝MvxSpinnerSelectedItemBinding - 被解雇这个绑定事件?它是否成功通过FireValueChanged电话?

根据显示的内容,然后尝试其他调试步骤,如可能在MvxBindableSpinner.cs中追踪。


三...你可以尝试比较现有的样本 - 我认为微调想法来自https://github.com/Zoldeper/Blooor/来到原先 - 所以也许看看像ProductEditView.axml

这是否代码工作?如果是这样,你能发现差异吗?

警告:该代码可能已经改变,因为这Blooor样品被写入


最后......而这仅仅是一种预感...你可以发布更多一点的视图模型在这里?我想知道你是否有类型不匹配......例如你的selectedItem是一个字符串,但应该是一个Mandant?


如果这是MvvmCross一个bug,然后“对不起”,并请将它作为一个问题 - 在https://github.com/slodge/MvvmCross/issues - 最好用重复的样品。