문제

다음 수준이 포함 된 다음 클래스가 있습니다.

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>

WPF의 계층 적 데이터 바인딩

그러나 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>
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top