2 단계에서 데이터를 표시합니다
-
21-12-2019 - |
문제
다음 수준이 포함 된 다음 클래스가 있습니다.
Draw
ObservableCollection<Round>();
Round
ObservableCollection<Formation>();
Formation
.
그래서 무승부는 라운드로 구성되어 있으며, 라운드는 형성으로 구성됩니다.
임의의 드로잉을 만드는 버튼이있는 페이지가 있습니다. 현재 그리기를 반환하는 다른 클래스를 호출합니다.
this.defaultViewModel[DrawName] = RandomDraw.generate();
.
ListView를 라운드하고 라운드 정보를 표시하는 데 문제가 없지만 개별 형성을 어떻게 표시합니까?이것은 내가 현재하고있는 것입니다. 나는 형성에 바인딩하여 물건을 표시 할 수있을 것으로 예상하지 않았지만 어떻게 액세스 할 수 있습니까?
<ListView
ItemsSource="{Binding Rounds}"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,9.5">
<TextBlock
Text="{Binding RoundNumber}"
TextWrapping="Wrap"
Pivot.SlideInAnimationGroup="1"
CommonNavigationTransitionInfo.IsStaggerElement="True"
Style="{ThemeResource ListViewItemTextBlockStyle}"
Margin="0,0,19,0"/>
<TextBlock
Text="{Binding Formations}"
TextWrapping="WrapWholeWords"
Pivot.SlideInAnimationGroup="2"
CommonNavigationTransitionInfo.IsStaggerElement="True"
Style="{ThemeResource ListViewItemContentTextBlockStyle}"
Margin="0,0,19,0"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
. 해결책
ListViews가 아닌 WPF TreeView 컨트롤에서 사용되는 계층 적 데이터 템플릿을 살펴보아야합니다. 그들은 계층 적 데이터를 보여주는 자연스러운 적합성입니다. 물론 WPF 컨트롤과 마찬가지로 스타일링 및 템플릿을 사용하여 모양을 완전히 사용자 정의 할 수 있습니다. 다음은 좋은 점이 있습니다 :
"Nofollow"> MSDN 방법 : TreeView를 사용하여 계층 적 데이터를 표시 / P>
그러나 ListViews를 계속 사용하려면이 작업을 수행하는 방법은 상위 ListView 내에 다른 컨테이너 컨트롤을 중첩하는 것입니다. ObservableCollections는 패널과 같은 특정 WPF 요소에 의해 자동으로 처리됩니다. 예제에서 두 번째 TextBlock을 다른 ListView로 바꿀 수 있습니다. 또한 StackPanel과 같은 수집 형 패널 요소 일 수도 있습니다.
<ListView
ItemsSource="{Binding Rounds}"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"
ContinuumNavigationTransitionInfo.ExitElementContainer="True">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,9.5">
<TextBlock
Text="{Binding RoundNumber}"
TextWrapping="Wrap"
Pivot.SlideInAnimationGroup="1"
CommonNavigationTransitionInfo.IsStaggerElement="True"
Style="{ThemeResource ListViewItemTextBlockStyle}"
Margin="0,0,19,0"/>
<!-- CHANGED CODE HERE -->
<ListView
ItemsSource="{Binding Formations}"
...>
<ListView.ItemTemplate>...</ListView.ItemTemplate>
</ListView>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
. 제휴하지 않습니다 StackOverflow