无法从DataGridRow中读取条目

时间:2012-08-16 13:34:48

标签: c# xml listview datagrid

我在.xaml窗口中有一个ListView,其中包含一个条目列表。这是重要的代码:

<ListView Grid.Row="1" Name="findList" BorderThickness="0" Margin="-4,26,-4,-4">
    <ListView.ItemContainerStyle>
        <Style TargetType="ListViewItem">
            <EventSetter Event="MouseDoubleClick" Handler="OnFindItem"></EventSetter>
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="ID" DisplayMemberBinding="{Binding Path=ID}" Width="32"/>
            <GridViewColumn Header="Key" DisplayMemberBinding="{Binding Path=Key}" Width="140"/>
            <GridViewColumn Header="English" DisplayMemberBinding="{Binding Path=English}" Width="250"/>
            <GridViewColumn Header="Translated Language" DisplayMemberBinding="{Binding Path=Translation}" Width="250"/>
        </GridView>
    </ListView.View>
</ListView>

当用户双击其中一个条目时,它会转到我的C#文件中的OnFindItem。它的具体代码块(虽然完全破坏)在这里:

private void OnFindItem(object sender, RoutedEventArgs e)
    {
        ListViewItem output = e.Source as ListViewItem;
        if (output != null)
        {
            //More code here.
        }
    }

无论我在C#中的这一小段代码中看起来如何调整,我似乎都无法读取用户双击的行的内容。我已经检查了很多网页,包括关于SO和MSDN的网页以及解决方案的内容,但是对C#来说还是一个新手我只是看不到我应该在这里做什么。

提前致谢,任何有能力帮助的人!

1 个答案:

答案 0 :(得分:0)

我终于找到了解决问题的方法。 C#代码应该如下:

private void OnFindItem(object sender, RoutedEventArgs e)
    {
        ListViewItem output = e.Source as ListViewItem;

        if (output != null)
        {
            DataRowView rowView = output.Content as DataRowView;
            if (rowView != null)
            {
                //More code here.
            }
         }
     }