Metro App自定义ListView KeyDown事件未触发

时间:2013-05-20 20:54:56

标签: c#-4.0 windows-runtime microsoft-metro winrt-xaml

我的Metro应用程序ListView具有此定义:

<ListView Grid.Row="0" x:Name="lvData" CanDragItems="True" CanReorderItems="True" SelectionMode="Extended">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <Border Padding="4,0,0,0">
                                <Grid Width="{Binding ElementName=lvData, Path=ActualWidth}">
                                    <Grid.RowDefinitions>
                                        <RowDefinition/>
                                        <RowDefinition/>
                                    </Grid.RowDefinitions>

                                    <Grid Grid.Row="0">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="65"/>
                                        </Grid.ColumnDefinitions>

                                        <TextBlock Grid.Column="0" HorizontalAlignment="Stretch"/>

                                        <TextBlock Grid.Column="1" HorizontalAlignment="Right"/>

                                        <TextBlock Grid.Column="2" HorizontalAlignment="Right"/>

                                        <TextBlock Grid.Column="3" HorizontalAlignment="Right"/>

                                        <TextBlock Grid.Column="4" HorizontalAlignment="Right"/>

                                    </Grid>

                                    <Grid Grid.Row="1">
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                                            <ColumnDefinition Width="Auto"/>
                                            <ColumnDefinition Width="65"/>
                                        </Grid.ColumnDefinitions>

                                        <TextBlock Grid.Column="0" HorizontalAlignment="Stretch" TextTrimming="WordEllipsis"/>

                                        <TextBlock Grid.Column="1" HorizontalAlignment="Right"/>

                                    </Grid>
                                </Grid>
                            </Border>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

我已尝试在此KeyDown ListView's中嵌入的不同控件上设置DataTemplate事件,但该事件似乎永远不会触发。

注意:如果我双击ListViewItem,则会触发KeyDown事件。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

您的控件需要专注于处理KeyDown事件。如果您需要全局处理它们 - 您可以在Window.Current.KeyDown而不是控件上处理它们。