【发布时间】:2012-12-13 15:55:17
【问题描述】:
我有两个列表视图,一个父视图包含一个子列表视图及其项目模板。
<ListView Name="TopView">
<ListView.ItemTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding SubList}"Focusable="False">
<ListView.Background>
<SolidColorBrush Color="Transparent"/>
</ListView.Background>
<ListView.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Path=Number}" Grid.Column="0" />
<TextBlock Text="{Binding Path=Type}" Grid.Column="1" />
<TextBlock Text="{Binding Path=Code}" Grid.Column="2" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
无论何时尝试使用 TopView.SelectedValue,返回的值始终为 null。
如何使父 ListView 成为唯一接受选择事件的 ListView 而不是子 ListView?我想我需要对事件路由做一些事情,但我不确定是什么。
【问题讨论】:
-
您没有为外部列表视图定义 itemsource,因此它将返回 null。它还应该返回什么?
-
@dognose 我通过 TopView.Items.Add 将项目手动添加到构造函数的顶部列表视图中,所以我认为它会通过该集合返回选定的项目\值。