c# – Xamarin与MVVM Light的Android数据绑定

c# – Xamarin与MVVM Light的Android数据绑定,第1张

概述原始问题: 尝试使用MVVM Light将我的ViewModel中的值绑定到Xamarin Android中的TextView时遇到问题.值会更改一次然后停止工作.即使对象在ViewModel中更改并且绑定模式设置为默认值(OneWay). 由于业务需求,我需要继续使用MVVM Light和Xamarin Android. 例: 在我的第一个片段中,我有一个书籍列表,这些书籍被绑定到我的ViewM 原始问题:

尝试使用MVVM light将我的viewmodel中的值绑定到Xamarin Android中的TextVIEw时遇到问题.值会更改一次然后停止工作.即使对象在viewmodel中更改并且绑定模式设置为默认值(OneWay).

由于业务需求,我需要继续使用MVVM light和Xamarin AndroID.

例:
在我的第一个片段中,我有一个书籍列表,这些书籍被绑定到我的viewmodel中的书籍列表.在我的viewmodel中,我有一个名为CurrentBook的对象,它随着我列表中的onclick事件而变化.

VM.CurrentBook = Books[index];

在我的第二个片段中,我将标题绑定到TextVIEw

_TitleBinding = this.SetBinding(() => VM.CurrentBook.Title,() => TitleTextVIEw.Text);

当前书籍第一次从NulL更改为Book实例时,标题会根据需要更改.第一次更改VM.CurrentBook = Books [index]后;标题与第一本选集书保持一致.

 更新:

我在Milen Pavlov的帮助下尝试过几件事,
我试过换到

VM.SetBinding(() => VM.CurrentBook.Title,TitleTextVIEw,() => TitleTextVIEw.Text,BindingMode.TwoWay);

这会触发错误:

System.Reflection.TargetException: Object of type '[Solution].ClIEnt.Shared.viewmodels.Booksviewmodel' doesn't match target type '[Solution].ClIEnt.AndroID.BookDetailsFragment'

 我试过的另一件事:

_TitleBinding = this.SetBinding(() => VM.CurrentBook.Title,BindingMode.TwoWay);enter code here

这引发了另一个错误:

System.Reflection.TargetException: Object of type 'AndroID.Support.V7.Widget.AppCompatTextVIEw' doesn't match target type '[solution].ClIEnt.AndroID.BookDetailsFragment'
解决方法 当xamarin androID和mvvm-light上的数据绑定时,我一直在使用这个重载:

VM.SetBinding(() => VM.CurrentBook.Title,BindingMode.TwoWay);

希望能帮助到你.

总结

以上是内存溢出为你收集整理的c# – Xamarin与MVVM Light的Android数据绑定全部内容,希望文章能够帮你解决c# – Xamarin与MVVM Light的Android数据绑定所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1226757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存