2010-01-27 3 views
1

멋진 모양을 만들려고합니다. Listbox. ListBoxItem은 선택 후 확장해야하지만 문제는 특정 항목에 대한 세부 정보가 담긴 ListBox을 포함하고 있다고 가정하고 일부 데이터를 입력하는 방법을 모릅니다. C# 코드에서 액세스하여 XAML에서 바인딩하려고 시도했지만 아직 솔루션 근처에 아무 것도 없습니다.WPF : ListBoxItem에 배치 된 ListBox에 데이터 삽입

<UserControl.Resources>   
    <ResourceDictionary> 
    <DataTemplate x:Key="SelectedTemplate"> 
      <StackPanel Orientation="Vertical"> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding Path = Order}" Style="{StaticResource SampleListCellItem}" MinWidth="35"/> 
        <TextBlock Text="{Binding Path = FullName}" Style="{StaticResource SampleListCellItem}" Width="340"/>      
        <TextBlock Text="{Binding Path = FirstName}" Style="{StaticResource SampleListCellItem}" Width="200" /> 
        <TextBlock Text="{Binding Path = BirthDate, StringFormat = d}" Style="{StaticResource SampleListCellItem}" Width="100"/> 
       </StackPanel> 
       <StackPanel HorizontalAlignment="Right"> 
        <ListBox Name="InnerList" Height="200" Width="200"/> 
        <Button Name="Button1" Height="40" Width="100" Content="ButtonText" Visibility="Visible"/> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 
     <DataTemplate x:Key="ItemTemplate"> 
      <StackPanel Orientation="Vertical"> 
       <StackPanel Orientation="Horizontal"> 
        <TextBlock Text="{Binding Path = Order}" Style="{StaticResource SampleListCellItem}" MinWidth="35"/> 
        <TextBlock Text="{Binding Path = FullName}" Style="{StaticResource SampleListCellItem}" Width="340"/> 
        <TextBlock Text="{Binding Path = FirstName}" Style="{StaticResource SampleListCellItem}" Width="200" /> 
        <TextBlock Text="{Binding Path = BirthDate, StringFormat = d}" Style="{StaticResource SampleListCellItem}" Width="100"/> 
       </StackPanel> 
      </StackPanel> 
     </DataTemplate> 

     <Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle"> 
      <Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}"/> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="ContentTemplate" Value="{StaticResource SelectedTemplate}"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </ResourceDictionary> 
</UserControl.Resources> 

답변

0

표시하려는 항목에 일반 목록 항목 소스와 호환되는 목록 (T) 또는 다른 유형의 속성이 있다고 가정합니다. 예를 들어 이름을 ListPr로 지정하십시오.

데이터 템플릿에서 listBox 컨트롤을 추가하고 ItemsSource를 {Binding Path = ListPr}로 설정하십시오. 그것은 그것과 똑같이 작동해야합니다. 이 새 목록 상자에서 다른 데이터 템플릿을 정의 할 수 있습니다.

다른 게시물에서도 마찬가지지만 트리 뷰는이 경우에 필요한 것일 수 있습니다.

희망이 있습니다.

1

당신이 찾고있는 것처럼 들리는 것은 나무입니다. 나는 TreeView 컨트롤이 당신이 찾고있는 것에 이상적이라고 생각합니다.

+0

답변 해 주셔서 감사 드리며 답변을 늦게 드려 죄송합니다. 데이빗의 해결책은 매력처럼 작동합니다. 감사 – Seldon

관련 문제