c# - MVVMCross Spinner - SelectedItem 不工作?

标签 c# android xamarin.android spinner mvvmcross

我在我的 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 不工作。无论我选择什么,它总是“空”。SelectedItem 的 ViewModel 上的属性如下所示:

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

我尝试了所有方法,但无法正常工作。它编译正常,没有错误消息。但它始终为空。也许有人可以帮助我吗?

最佳答案

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


首先,您能否将绑定(bind)跟踪级别设置为诊断 - 在您的代码调用中的某处:

 MvxBindingTrace.TraceBindingLevel = MvxTraceLevel.Diagnostic;

这是否揭示了有关失败原因的更多信息?


其次,如果您要链接到源代码,请尝试在 MvxSpinnerSelectedItemBinding 中的 _spinner_ItemSelected 中设置断点和/或添加一些额外的跟踪信息- 是否触发了此绑定(bind)事件?它是否一直成功到 FireValueChanged 调用?

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


第三...你能尝试与现有样本进行比较吗 - 我认为 Spinner 的想法来自 https://github.com/Zoldeper/Blooor/最初 - 所以也许看看像 ProductEditView.axml 这样的东西

该代码有效吗?如果是这样,您能看出区别吗。

警告:自编写该 Blooor 示例以来,代码可能已更改


最后......这只是一种预感......你能在这里发布更多你的 ViewModel 吗?我想知道你是否有类型不匹配......例如您的 selectedItem 是字符串但应该是 Mandant?


如果这是 MvvmCross 中的错误,那么“抱歉”并请将其报告为问题 - 在 https://github.com/slodge/MvvmCross/issues - 最好使用可重现的样本。

关于c# - MVVMCross Spinner - SelectedItem 不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13526085/

相关文章:

c# - 如何在不在代码中自己指定数组长度的情况下用用户输入填充数组

c# - 在 C# 中读取隐藏共享

java - 将 Delphi 5 引擎控制应用程序转换为 Android - 需要有关方法的建议

android-layout - 不能在另一个 *.axml 文件中包含 *.axml 文件

c# - 注册通用工厂

c# - 动态网址路由

android - 一旦我调用 client.disconnect,位置图标就不会消失

android - 多列 ListView 显示零而不是数据库值

android - webkit 栅格与矢量图像

java - Xamarin - 使用 JavaScript 调用 Android 函数