因此,我有一堆通过代码添加到显示器的Frame对象(它们的数量是可变的)。忠实于MVVM,我需要将每种颜色的背景色绑定到模型中的某些东西。因此绑定很简单:
Frame f1 = new Frame();
f1.SetBinding(Frame.BackgroundColorProperty, "BackColor1");
Frame f2 = new Frame();
f2.SetBinding(Frame.BackgroundColorProperty, "BackColor2");
以此类推。那只是一个简单的例子,真实的东西是循环的。在模型中:
Xamarin.Forms.Color BackColor1
{
get
{
return Color.Black;
}
}
Xamarin.Forms.Color BackColor2
{
get
{
return Color.White;
}
}
以此类推。这对于一些对象来说很好用,但是如果有50个呢? 100?我不想在类中创建100个BackColor属性。那就是疯狂。我现在只在C#和xamarin中玩了几周,所以我还有很多东西需要学习。当您需要绑定大量这样的对象时,什么才是忠于MVVM的最佳方法?
答案 0 :(得分:0)
分配后,这些颜色会改变吗?如果是这样,则无需停留在“真正的MVVM”中,我假设您的意思是“使用绑定”。真正的MVVM不需要对所有内容都使用绑定,实际上,如果实例化对象后属性的值不会改变,那么使用绑定就显得过头了。可以为属性使用静态值,并且仍在“ true MVVM”之内。实际上,如果不更改值,或者甚至不经常更改值,则属性的静态值会更好,因为绑定确实会带来一些性能开销。因此,基本上,每次实例化一个新的Frame时,只需静态设置BackgroundColor。