Я следую этому уроку (https://www.wpf -tutorial.com / treeview-control / treeview-data-binding-множественные шаблоны / ), но моя проблема заключается в следующем: как сделать класс с несколькими детьмиЭлементы?
Я хочу поделиться на своем TreeView большинством моделей из той же базы, разделенных семейством;Ну, я хочу, чтобы семья тоже могла быть детьми другой семьи
Вот мой код модели:
public enum Sex
{
Male,
Female,
Unknow,
}
class Base
{
public int FamilyID { get; set; }
public string ScientificName { get; set; }
public Sex Sex { get; set; }
}
class Family
{
public int ID { get; set; }
public string Name { get; set; }
}
class Snake : Base
{
public VenomType VenomType { get; set; }
}
class Amphibian : Base
{
// nothing now
}
class Lizard
{
// Nothing now
}
А вот мой код ViewModels:
class FamilyVM : INotifyPropertyChanged
{
private ObservableCollection<Family> families = new ObservableCollection<Family>();
public ObservableCollection<Family> Families
{
get { return families; }
set { families = value; NotifyPropertyChanged(); }
}
public void Load()
{
ObservableCollection<Family> families = new ObservableCollection<Family>();
families.Add(new Family { ID = 1, Name = "Amphibian" });
families.Add(new Family { ID = 2, Name = "Viperidae" });
families.Add(new Family { ID = 3, Name = "Aranae" });
Families = families;
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
class SnakeVM : INotifyPropertyChanged
{
private ObservableCollection<Snake> snakes = new ObservableCollection<Snake>();
public ObservableCollection<Snake> Snakes
{
get { return snakes; }
set { snakes = value; NotifyPropertyChanged(); }
}
public void Load()
{
ObservableCollection<Snake> snakes = new ObservableCollection<Snake>();
snakes.Add(new Snake { FamilyID = 2, ScientificName = "Echis carinatus sochureki", Sex = Sex.Female, VenomType = VenomType.Heamotoxic });
snakes.Add(new Snake { FamilyID = 2, ScientificName = "Echis carinatus sochureki", Sex = Sex.Female, VenomType = VenomType.Heamotoxic });
Snakes = snakes;
}
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
МойВид:
Должен ли я использовать базовые модели?Как я могу добавить макет для проверки результатов детей?В настоящее время в коде используется только семейство (как я и просил в предыдущем посте: TreeView и привязка данных не удалась )
Надеюсь, вы можете мне помочь;)
Спасибо за аванс,