【问题标题】:Binding does not work MVVMCross绑定不起作用 MVVMCross
【发布时间】:2016-07-26 21:57:19
【问题描述】:

我有以下实现,我正在老化并绑定它。但是,无论我做什么,它都没有在 UI 上更新,而且由于某种原因它甚至没有命中 getter。

视图模型

public void Initialize()
{
   Age = 33;
}

public double _age;  
public double Age
{
  get { return _age ; }
  set
  {
    _age = value;
    RaisePropertyChanged(() => Age);
   }          
}

xml

<TextView
 android:layout_height="wrap_content"
 android:layout_width="wrap_content"
 local:MvxBind="Text Age" />

【问题讨论】:

  • 你能访问FragmentActivity中的ViewModel吗?输出窗口中是否有任何错误?
  • 输出窗口没有错误。我可以在 Fragment 中访问 View 模型
  • Model代码实际上是模型还是ViewModel?
  • 方法Initialize()你自己叫吗?默认初始化方法是Init() 而不是Initialize()
  • 我在 View Model 构造函数中称它为我自己

标签: c# xamarin xamarin.android mvvmcross


【解决方案1】:

如果没有更多上下文,很难准确地说。代码看起来正确。为了使绑定起作用,您需要遵循正确的命名约定,以便 MvvmCross 可以将所有必要的部分相互关联。所以在这种情况下,如果你的视图被称为 AgeDisplayView,那么你的视图模型必须被称为 AgeDisplayViewModel。您的视图还必须覆盖 OnCreate 方法并使用它将 ContentView 设置为包含 MvxBind 指令的布局文件(例如 SetContentView(Resource.Layout.AgeDisplayViewLayout)。

那将是我首先要看的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    • 1970-01-01
    • 2015-05-15
    相关资源
    最近更新 更多