2008-11-18 45 views
1

目前我有一个ListView(使用Details View)。我想实现这样的行为,即当用户选择单个项目(日志条目)时,日志条目将扩展(从一行到多行)以提供有关发生错误的更多详细信息。c#如何扩展ListView中的项目以占用多行?

我的问题是这样的:这可能吗?如果是这样,是否有一个很好的资源可以帮助我?

编辑:

如果我HAVE使用WPF,那么我猜病态使用ElementHost的与控制。但是,我绝对不知道如何设计/编码/使用WPF组件。有什么建议么?

+0

你会喜欢WPF ;-) – lesscode 2008-11-18 11:08:11

回答

4

编辑:对不起,这是WPF

我用来实现同样的事情诀窍是创建触发器,以显示其默认为一塌次栅。

尝试了这一点:

<ListBox ItemsSource="{Binding}"> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <Grid> 
        <Grid.RowDefinitions> 
         <RowDefinition></RowDefinition> 
         <RowDefinition></RowDefinition> 
        </Grid.RowDefinitions> 

        <Grid Grid.Row="0" Height="20" > 
         <TextBlock Text="Not Selected"></TextBlock> 
        </Grid> 
        <Grid x:Name="selectedOnlyGrid" Grid.Row="1" Visibility="Collapsed"> 
         <TextBlock Text="Selected"></TextBlock> 
        </Grid> 

       </Grid> 

       <DataTemplate.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}, AncestorLevel=1}, Path=IsSelected}" Value="True"> 
         <Setter Property="Visibility" Value="Visible" TargetName="selectedOnlyGrid" /> 
        </DataTrigger> 
       </DataTemplate.Triggers> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
+0

我很抱歉,但我的理解在这一点上,XAML和WPF都是完全不存在的。你能解释一下这段代码的作用吗?谢谢。 – 2008-11-19 08:11:09

0

不是你的问题的直接答案,但我认为 你最好在这种情况下与网格。

+0

不幸的是,我需要的列headdings使用时是ListView控件中存在的详细信息视图 – 2008-11-18 10:37:21

1

一种方式与一个ListView做这将是动态添加当您选择“父”时,您需要添加新的ListViewItem。同样,当选择更改为其他项目时,您需要将其删除。

您也可能想要覆盖默认的向上/向下行为以跳过子项目。