0

.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>

ユーザーがエントリの 1 つをダブルクリックすると、C# ファイルの OnFindItem に移動します。そのための特定のコード ブロックは (完全に壊れていますが) ここにあります。

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

C# でこの小さなコードを調整しても、ユーザーがダブルクリックした行の内容を読み取ることができないようです。SO や MSDN などのソリューションのページを含む多くの Web ページをチェックしましたが、C# を初めて使用するので、ここで何をすべきかわかりません。

助けていただける方、よろしくお願いします!

4

1 に答える 1

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.
            }
         }
     }
于 2012-08-17T11:00:11.967 に答える