2012-11-23 41 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 - 最好用重複的樣品。