2012-08-06 1 views
0

WPF 세계에 처음으로 접했고 동적 컬럼 뷰를 구현해야합니다.컬렉션에리스트 뷰를 바인딩 ... 동적 인

아이디어를 개념적으로 시각화 할 수 있지만 이것을 구현으로 전환 할 수는 없습니다.

StackPanel -> ListView -> 텍스트 상자.

전체 엔티티는 선택된 엔티티에 따라 선택된 엔티티의 열로 프로파일을 표시하는 것입니다. 프로파일은 변경 될 수 있으므로 프로필을 동적 열로 표시하려고합니다. 프로필에는 텍스트 상자로 세로로 표시 될 수있는 54 개의 항목이 있습니다.

프로필 항목 (54 항목)을 나타내는 관찰 가능한 컬렉션이있는 경우 usercontrol에 바인딩되고 사용자 정의 컨트롤이 목록 뷰에 세로로로드됩니다.

추가 된 각 프로필이 스택 패널에 가로로 추가되어 모든 프로필을 동적 열로 가져올 수 있습니다.

xaml을 통해 구현할 수있는 방법에 대한 아이디어 나 참고 자료 및 내 모델 개체는 어떻게 표시되어야합니까?

희망은 내가 제대로을 통해 내 생각을 넣어 가지고 :

이 ** 필요 뭐죠 매우 빠른 핸드 스케치를 추가.

col1..col2 ..... 열은 사각형 상자로 표시된 텍스트 상자에 표시 할 데이터가있는 컬렉션이 이상적입니다.

각 열은 다양 할 수 있습니다.

내 서비스에서 가져온 데이터는 이상적으로 Collection of Collection입니다.

그래서 첫 번째 컬렉션이 매우 그리드 같은 소리 첫번째 생각에 Col1..Col2..Col3 ... 항목 ...

이 포함되어 있지만, 데이터 모델은 그리드의 표시 스타일에 맞게하지 않습니다.

각 Col1..col2..col3은 첫 번째 컬렉션의 다른 컬렉션입니다. enter image description here

+0

약간 혼란 스럽습니다. 더 설명하거나 적어도 예를 들어주세요. – S3ddi9

+0

이것은 설명에서 시각화하기가 약간 어렵습니다. 빠른 모형 와이어 프레임이나 도움이 될 것으로 보이는 것을 시각적으로 전달하는 데 도움이되는 것이 있습니까? 그렇지 않으면 ItemsControl 또는 DataGrid를 원한다고 생각하는 것에서부터 시작합니다. 나는 당신이 겪은 것을 더 잘 시각화하지 않고 예제를 제공하기를 주저합니다. –

+0

코멘트 주셔서 감사합니다, 화면을 조롱하고 더 나은 이해를 위해 그것을 추가, 최대한 빨리 – Kans

답변

0

나는 위의 요구 사항에 따라 데이터의 레이아웃과 디스플레이를 해결할 수 있었기 때문에 여러 가지 답변이 혼합되어있어이 사실을 알게되었습니다.

그래서 아래의 XAML은 원하는 수의 목록 항목을 가로로 만듭니다.

<Grid x:Name="LayoutRoot" Background="White"> 
    <StackPanel Height="301" HorizontalAlignment="Left" Margin="37,42,0,0" Name="stackPanel1" 
       VerticalAlignment="Top" Width="795"> 
     <StackPanel.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="Black" Offset="0" /> 
       <GradientStop Color="White" Offset="1" /> 
       <GradientStop Color="Silver" Offset="0.006" /> 
      </LinearGradientBrush> 
     </StackPanel.Background> 

     <ItemsControl x:Name="tStack" Grid.Column="0" ItemsSource="{Binding Profiles}" > 
      <ItemsControl.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ItemsControl.ItemsPanel> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <Grid HorizontalAlignment="Left"> 
         <Grid.RowDefinitions> 
          <RowDefinition/> 
          <RowDefinition/> 
         </Grid.RowDefinitions> 
         <Button Grid.Row="0" Content="{Binding Name}"/> 
         <ListBox Grid.Row="1" Height="209" Name="listBox1" Width="98" HorizontalAlignment="Left" 
          ItemsSource="{Binding Path=Profile, Mode=TwoWay}"/> 
        </Grid> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </StackPanel> 
</Grid>