我有 2 列的“gridview 样式”列表视图。我想知道如何获取我称为上下文菜单的项目的第一列值(CM 只有一个按钮,我想处理值)?
这是 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();
}
如果您有任何想法,请帮助我。
找到解决方案
有必要创建 RightMouseUp 事件的处理程序并从其发送者那里获取我需要的值,因为 Context_Menu_button_Click 的发送者不包含有关它被单击的项目的信息,但包含有关 ContextMenu 的信息。所以......我是这样处理的:
处理程序:
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>
谢谢大家!