0

2列の「グリッドビュースタイル」のリストビューがあります。コンテキストメニューを呼び出したアイテムの最初の列の値を取得する方法を知りたいです (CM には、値を処理したい場所にのみボタンが 1 つあります)。

XAML は次のとおりです。

        <ListView.Resources>
            <ContextMenu x:Key="ContextMenu">
                <MenuItem Header="Run test with parameters" x:Name="runTestWithParams" Click="runTestWithParams_Click" />
            </ContextMenu>
        </ListView.Resources>
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                <Setter Property="ContextMenu" Value="{StaticResource ContextMenu}"/>
            </Style>
        </ListView.ItemContainerStyle>

そして、contextMenu ボタン ハンドラは次のとおりです。

    private void runTestWithParams_Click(object sender, RoutedEventArgs e)
    {
        string valueOfFirstColumn = // something like ItemThatWasClicked["ID"].ToString();     
    }

何かアイデアがあれば、私を助けてください。

解決策が見つかりました

Context_Menu_button_Click の送信者には、クリックされたアイテムに関する情報は含まれていませんが、ContextMenu に関する情報が含まれているため、RightMouseUp イベントのハンドラーを作成し、その送信者から必要な値を取得する必要がありました。だから...私はそれを次のように処理しました:

ハンドラ:

    private void HandleMouseRightButtonUp(object sender, MouseButtonEventArgs e)
    {
        ListViewItem selected = sender as ListViewItem;
        String valueINeed = (selected.Content as TestIdentification).Id;
    }

XAML:

<Style TargetType="ListViewItem">
                <EventSetter Event="MouseRightButtonUp" Handler="HandleMouseRightButtonUp" />
</Style>

全てに感謝!

4

2 に答える 2