#wpf
#wpf
Вопрос:
У меня есть таблица с именем customer с файлами (ID, Name, Code, FatherID). Поля (ID) и (FatherID) соединены вместе.
я получаю список клиентов в mvvm (AllCustomer)
public ViewModelList(CRMEntities crm)
{
var all = from h in crm.Customer
select h;
AllCustomer = new ObservableCollection<Customer>(all.ToList());
}
public ObservableCollection<Customer> AllCustomer
{
get;
set;
}
/* xml-файл
<TreeView Name="folderTree"
ItemsSource="{Binding AllCustomer}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding AllCustomer}"
DataType="{x:Type cls:Customer}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
я хочу заполнить treeview, который отображает всех клиентов как отца сына!
Кем я могу заполнить treeview с клиентами, с помощью mvvm?
Комментарии:
1. Важно знать имя дочернего отношения (что-то вроде
ChildCustomers
), откройте конструктор Entity Framework, он должен содержать это имя в разделе свойств навигации.2. в таблице customer у меня есть fatherid, который ссылается на идентификатор
3. Не будет достаточно только идентификатора. Вам нужно будет заполнить список дочерних элементов под каждым
Customer
…public class Customer { public ObservableCollection<Customer> ChildCustomers { get { return childCustomers; } } }
4. мой treeview может иметь несколько этапов. кажется, я должен создать отдельный класс для каждого дочернего элемента. верно?
5. @niloo Если вы используете Entity Framework, у вас будет аналогичная диаграмма, как на этом рисунке: dl.dropbox.com/u/8047386/customer table sample.PNG . Есть 2 свойства навигации, добавьте в свой пост информацию об их именах в вашей модели.