У меня есть 2 ViewModels. Один из них называется Пользователь (содержит основную информацию, ничего особенного), а другой - Группу, которая имеет в качестве свойства IEnumerable of User. Этот IEnumerable поддерживается словарем (пользователей много, их нужно быстро искать)
public class Group
{
#region Fields
private Dictionary<string, User> userLookup;
#endregion //Fields
public Group()
{
userLookup = new Dictionary<string, User>();
}
public User[] Users
{
get
{
return userLookup.Values.ToArray<User>();
}
set
{
foreach (var user in value)
{
if (!userLookup.ContainsKey(user.Login))
userLookup.Add(user.Login, user);
}
}
}
public bool AddUser(User user)
{
if (userLookup.ContainsKey(user.Login))
return false;
userLookup.Add(user.Login, user);
return true;
}
}
Теперь классу GroupViewModel необходимо добавить нового пользователя, но все, что отображается в GroupViewModel - это UserViewModels, а функция Add принимает только тип User. В настоящее время у меня есть внутренняя функция в UserViewModel, которая предоставляет базовый объект User, мне было просто интересно, если это побеждало цель использования MVVM.
Спасибо!