Mobile MvvmCross:另一个ViewModel场景中的ViewModel

Mobile MvvmCross:另一个ViewModel场景中的ViewModel,mobile,mvvm,xamarin,mvvmcross,concept,Mobile,Mvvm,Xamarin,Mvvmcross,Concept,我有以下问题:当我想单独绑定ViewModel内部的一些元素时,逻辑的预期场景是什么。我的意思是。。。 在提供的示例中有一个“Kitten”类-这只是一个常见的“DTO”对象。 还有一个modelview类,它包含以下对象列表: public List<Kitten> Kittens { get ... set { ... RaisePropertyChanged(() => Kittens); } } 公开列表小猫 { 得到。。。 集合{…RaisePro

我有以下问题:当我想单独绑定ViewModel内部的一些元素时,逻辑的预期场景是什么。我的意思是。。。

在提供的示例中有一个“Kitten”类-这只是一个常见的“DTO”对象。 还有一个modelview类,它包含以下对象列表:

public List<Kitten> Kittens
{
    get ...
    set { ... RaisePropertyChanged(() => Kittens); }
}
公开列表小猫
{
得到。。。
集合{…RaisePropertyChanged(()=>Kittens);}
}
我们可以将网格与单元格绑定(绑定到Kitten属性)。但是,如果我希望能够分别激活小猫的每个属性上的RaiseProperty更改,该怎么办?即。, 如果kitten标题更改,那么是否要调用KittAuthenticate属性上的RaisePropertyChanged(并相应地仅更改绑定单元格值而不是整个列表刷新)

Kittens的示例显然很简单,不需要这样的实现,但是如果我没有Kittens,而是有一个类似于Facebook应用程序菜单面板的列表,其中有菜单项(数量可能会有所不同),这些项目可以有“通知计数”标签(或不能),那么,不是完全刷新列表,如何启动仅刷新标签(由“Kitten”实例中的相关属性更改引起)? (对我来说,这看起来像viewModel内部的viewModel,但不确定如何使用MvvmCross更智能地解决它)


谢谢大家!

您可以实现嵌套的
INotifyPropertyChanged
对象-与Windows绑定中的操作完全相同

因此,如果一只小猫的属性发生了变化,那么只有该小猫的UI部分会刷新

e、 g.小猫可以这样写:

public class DynamicKitten : MvxNotifyPropertyChanged // can use MvxViewModel as base class if preferred
{
    private string _name;
    public string Name
    {
        get { return _name; }
        set { _name = value; RaisePropertyChanged(() => Name); }
    }
}
有关这方面的一些示例(主要使用Linq包装静态对象),请参见:

  • (在中讨论了v3之前的版本)

我最喜欢的StackOverflow库之一将这种INPC方法带回到Json层-看看

中的所有INPC实体,或者你的意思是将“Kitten”对象直接绑定到视图(我为该对象(例如,tablecell)创建的视图)以进行KittAuthority绑定?抱歉,错过了答案的编辑。我真正想问的是,在这种情况下,绑定应该如何进行。只要我先绑定“Kittens”集合,然后再绑定“Kitten.Title”,但MvxNotifyPropertyChanged将在“Kitten”上调用。我应该为它添加更多的绑定(到我基于“Kitten”创建的视图中)还是这样就足够了?试试看-你很快就会掌握窍门:)事实上,就在遇到延迟绑定(()=>{CreateBindingSet()})之前,他非常感谢你的快速回答!