我的Visual C#代码中有一个ListView,它还在一行上实现双击监听器。双击显示显示该行的列值之一(在本例中为id)。
这是xaml代码:
<ListView x:Name="myList"
Height="334"
HorizontalAlignment="Left"
Margin="10,62,0,0"
VerticalAlignment="Top"
Width="630" Grid.ColumnSpan="2"
>
<ListView.View >
<GridView>
<GridViewColumn x:Name="id" Width="35" Header="Id" DisplayMemberBinding="{Binding Path=id}" ></GridViewColumn>
<GridViewColumn Width="100" Header="Name" DisplayMemberBinding="{Binding Path=name}"></GridViewColumn>
<GridViewColumn Width="100" Header="Address" DisplayMemberBinding="{Binding Path=address}"></GridViewColumn>
<GridViewColumn Width="100" Header="Mobile" DisplayMemberBinding="{Binding Path=mobile}"></GridViewColumn>
<GridViewColumn Width="100" Header="Date" DisplayMemberBinding="{Binding Path=date}"></GridViewColumn>
<GridViewColumn Width="100" Header="Price" DisplayMemberBinding="{Binding Path=price}"></GridViewColumn>
<GridViewColumn Width="100" Header="Warranty" DisplayMemberBinding="{Binding Path=warranty}"></GridViewColumn>
</GridView>
</ListView.View>
</ListView>
和C#代码:
public view_all()
{
InitializeComponent();
myList.MouseDoubleClick += new MouseButtonEventHandler(list_MouseDoubleClick);
}
private void list_MouseDoubleClick(object sender, RoutedEventArgs e)
{
if (myList.SelectedItem != null)
{
string selectedItem = myList.Items[myList.SelectedIndex].ToString();
MessageBox.Show(selectedItem);
}
}
单击消息框显示&#39; System.Data.DataRowView&#39;。该消息应该是该行的id。
答案 0 :(得分:0)
因此,如果内存为我提供了一个ListItem,它就是一个单独的容器,所以它应该有一个隐含的.Content属性,你可以用手指触及内部的内容。
现在,既然你没有这样做,它基本上告诉你你的价值在哪里的容器类型
尝试访问myList.Items [myList.SelectedIndex] .Content.ToString()
(或类似的东西,我现在不在开发环境附近),这将帮助您定位正确的事物。
希望能帮助你:)
答案 1 :(得分:0)
此处的子项取决于列表视图中您的ID列。
string selectedItem = myList.SelectedItems[0].SubItems[1].Text;