Я работаю над проектом WPF, пытаясь получить информацию от объекта ImpactElement. Этот объект находится внутри ObservableCollection с именем ElementList. Этот ElementList находится внутри другой ObservableCollection с именем ListOfCreatedStacks, которая содержит объекты стека классов.
Он показывает только toString из элемента (ImpactElement) внутри ElementList. Я хочу, чтобы переменная ImpactElements ElementMark отображалась для каждого элемента в ElementList.
Вот как это выглядит сейчас Один элемент добавлен в ElementList
Я могу создать любое количество стеков, и внутри каждого стека есть ElementList с разным количеством ImpactElement. Два стека с разным количеством ImpactElements в ElementList
Из этих изображений вы можете видеть, что каждый элемент ImpactElement из ElementList отображается как «IMPACT_Visual_Stacker.Model.ImpactElement», но я хочу, чтобы это была переменная ElementMark, которая находится внутри класса ImpactElement.
Вот код из разных классов.
public class Controller
{
public ObservableCollection<Stack> ListOfCreatedStacks { get { return listOfCreatedStacks; } set { listOfCreatedStacks = value; } }
}
public class Stack
{
public ObservableCollection<ImpactElement> ElementList { get { return elementList; } set { elementList = value; } }
public string Id { get { return id; } set { id = value; } }
}
public class ImpactElement
{
private string elementMark;
private int id;
private Vector3 sizeLWH;
private Vector3 positionXYZ;
private Vector3 rotationXYZ;
private Mesh elementMesh;
}
Вот часть XAML.
<ListView ItemsSource="{Binding ListOfCreatedStacks}" HorizontalAlignment="Left" Margin="350, 200,0,0" Width="300">
<ListView.ItemTemplate>
<DataTemplate>
<TreeViewItem
Header="{Binding Id}"
IsExpanded="True">
<TreeViewItem
ItemsSource="{Binding ElementList}" Header="{Binding ElementMark}" IsExpanded="True">
</TreeViewItem>
</TreeViewItem>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Я попробовал решение из другого StackOverflow, которое я получил от Эда. В результате добавляется только объект Hiearchy вместо моих объектов "ImpactElement".
Вот как выглядит проверенный XAML:
<ListView ItemsSource="{Binding ListOfCreatedStacks}" HorizontalAlignment="Left" Margin="350, 200,0,0" Width="300">
<ListView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type System:String}"
ItemsSource="{Binding ListOfCreatedStacks}">
<TreeViewItem
Header="{Binding Id}"
IsExpanded="True">
<HierarchicalDataTemplate DataType="{x:Type System:String}"
ItemsSource="{Binding ElementList}">
<TreeViewItem
Header="{Binding ElementMark}"
IsExpanded="True">
</TreeViewItem>
</HierarchicalDataTemplate>
</TreeViewItem>
</HierarchicalDataTemplate>
</ListView.ItemTemplate>
</ListView>
Такое ощущение, что я пропустил какую-то простую часть, которую я не понимаю. Спасибо за помощь.
TreeViewItem
вListView
вместоTreeView
? - person grek40   schedule 17.05.2017