Я новичок в методологии MVVM и WPF и пытаюсь разработать бизнес-приложение, используя его.Я закончил со следующей структурой кода, чтобы получить древовидное представление с несколькими узлами типа
. У меня есть древовидная структура, определенная в пользовательском элементе управления следующим образом:в файле кода:
public TreeCtrlView()
{
InitializeComponent();
treeView1.DataContext = new ViewModels.TreeViewModel();
}
Модели данных выглядят следующим образом:
class TreeViewModel : ViewModelBase
{
public ObservableCollection<ClientViewModel> Clients;
public TreeViewModel()
{
var v = from client in DataModel.GetAllClients() select new ClientViewModel(client);
Clients = new ObservableCollection<ClientViewModel>(v.ToList());
}
}
class ClientViewModel : ViewModelBase
{
private Client _client;
private List<ProductViewModel> _products;
public string Name { get { return _client.ClientName; } }
public string Address { get { return _client.Address; } }
public string City { get { return _client.City; } }
public string State { get { return _client.State; } }
public string PinCode { get { return _client.PinCode; } }
public string ServiceTaxNumber { get { return _client.ServiceTaxNumber; } }
public string ContactPerson { get { return _client.ContactPerson; } }
public string ContactNumber { get { return _client.ContactNumber; } }
public List<ProductViewModel> Products { get { return _products; } }
public ClientViewModel(Client client)
{
_client = client;
_products = new List<ProductViewModel>(from product in DataModel.GetClientProducts(client)
select new ProductViewModel(product));
}
}
class ProductViewModel : ViewModelBase
{
Product _product;
public long ID { get { return _product.ProductID; } }
public string Name { get { return _product.Name; } }
public decimal? Price { get { return _product.MRP; } }
public ProductViewModel(Product product)
{
_product = product;
}
}
К сожалению, в раскрывающемся списке ничего не видно, кроме узла Majestic без знака +.