我有一个程序,当您单击该按钮时,它会创建一个具有随机属性的人。
如果标签的内容随着创建的每个不同对象(人物)而变化,那么如何在真正的MVVM风格中定义它?我无法让viewmodel控制视图,对吗?所以我不能
label.Content = person.hair_Color;
public class Person()
get set hair_Color, get set shirt_color, yadda yadda
因为可以有1个或无限量的人,如果我不知道会有多少人,我该如何动态添加标签的内容?
答案 0 :(得分:3)
在真正的MVVM风格'中,你会有类似的东西:
<Button Command={Binding AddPerson}
/&GT; <ListBox ItemsSource="{Binding Persons}"/>
<TextBlock Text="{Binding Shirt}"/>
<TextBlock Text="{Binding Hair}"/>
<Rectangle Background="{Binding Shirt, Converter={stringToColorConverter}/>
<Rectangle Background="{Binding Hair, Converter={stringToColorConverter}/>
public ObservableCollection<PersonViewModel> Persons { get; set; }
public Command AddPerson { get; set; }
public string Shirt { get; set; }
public string Hair { get; set; }
这几乎只是你实际拥有的一个模型,因为实现取决于所使用的框架,但这个想法就在这里。你绑定,转换等等。