1

Android アプリケーションに MvxBindableSpinner を組み込みました。

<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 が機能していないことです。選択したものは常に「null」です。SelectedItem の ViewModel のプロパティは次のようになります。

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

私はすべてを試しましたが、うまくいきません..うまくコンパイルされ、エラーメッセージはありません..しかし、常にnullです..誰かが私を助けることができますか?

4

1 に答える 1

1

これをデバッグ/修正する方法について提案できることがいくつかあります。


まず、バインディング トレース レベルを Diagnostic に設定できますか? コード呼び出しのどこかで:

 MvxBindingTrace.TraceBindingLevel = MvxTraceLevel.Diagnostic;

これにより、何が失敗しているのかについてさらに情報が明らかになりますか?


次に、ソース コードにリンクしている場合は、ブレークポイントを設定するか、 MvxSpinnerSelectedItemBinding_spinner_ItemSelected内にトレースを追加してみてください。このバインディング イベントは発生していますか? 呼び出しまで成功していますか?FireValueChanged

明らかになった内容に応じて、 MvxBindableSpinner.csでのトレースなど、他のデバッグ手順を試してください。


3番目...既存のサンプルと比較してみてください-スピナーのアイデアはもともとhttps://github.com/Zoldeper/Blooor/から来たと思います-それで、 ProductEditView.axmlのようなものを見てください

そのコードは機能しますか?もしそうなら、あなたは違いを見つけることができます。

警告: Blooor サンプルが作成されてからコードが変更された可能性があります


最後に...これはただの予感です...ここにあなたのViewModelをもう少し投稿できますか? タイプの不一致が起こっているかどうか疑問に思っています...たとえば、selectedItemは文字列ですが、マンダントにする必要がありますか?


これが MvvmCross のバグである場合は、「申し訳ありません」と問題として報告してください - https://github.com/slodge/MvvmCross/issuesで- できれば再現可能なサンプルを添付してください。

于 2012-11-23T10:01:37.783 に答える