Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ListView:检索鼠标指针上的行值_C#_Wpf_Listview_Data Binding_Mouseevent - Fatal编程技术网

C# ListView:检索鼠标指针上的行值

C# ListView:检索鼠标指针上的行值,c#,wpf,listview,data-binding,mouseevent,C#,Wpf,Listview,Data Binding,Mouseevent,我想在MouseEnter事件的ListViewa中检索行单元格的值。ListView项是通过绑定生成的 如果不检查SelectedItem,如何执行此操作 更新 xaml 我们可以覆盖ItemContainerStyle,以使项目有机会处理事件: xaml: 就你而言: xaml: 更改BasedOn=“{StaticResource{x:type ListBoxItem}中的类型如果您有listboxitem的自定义样式。您只需将ListBox更改为ListView,就可以轻松地将上述Lis

我想在
MouseEnter
事件的
ListView
a中检索行单元格的值。
ListView
项是通过
绑定生成的

如果不检查
SelectedItem
,如何执行此操作

更新

xaml


我们可以覆盖ItemContainerStyle,以使项目有机会处理事件:

xaml:

就你而言:

xaml:


更改
BasedOn=“{StaticResource{x:type ListBoxItem}中的类型
如果您有listboxitem的自定义样式。您只需将ListBox更改为ListView,就可以轻松地将上述ListBox代码应用于ListView谢谢您的回答。我尝试添加了您的代码,但没有成功。我已使用代码更新了我的答案。我的目标是检索鼠标悬停时的值并将其添加到状态栏项中。这是解决方案不适用于具有
数据绑定
的项目。我的示例代码没有任何绑定。如果您能回答与
绑定
相关的相同问题,我将不胜感激。请参见:
<StackPanel>
    <ListView x:Name="listView" MouseEnter="listView_MouseEnter">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Items"/>
            </GridView>
        </ListView.View>
    </ListView>
    <StatusBar VerticalAlignment="Center">
        <StatusBarItem>The value is:</StatusBarItem>
        <StatusBarItem x:Name="retrievedText" />
    </StatusBar>
</StackPanel>
    public MainWindow()
    {
        InitializeComponent();

        int[] itemSource = { 1, 12, 3, 44, 12, 45, 6, 8, 9 };

        listView.ItemsSource = itemSource;
    }


    private void listView_MouseEnter(object sender, MouseEventArgs e)
    {
        string hoveredItem = null; //This will be the retrieved value

        retrievedText.Content = hoveredItem;
    }
<ListBox>
    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem} }">
            <EventSetter Event="MouseEnter" Handler="ListBoxItem_MouseEnter" />
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
private void ListBoxItem_MouseEnter(object s, MouseEventArgs e)
{
    var item = e.OriginalSource as ListBoxItem;

    // depends on what we have put in the content. e.g. string.
    var content = item.Content as string; 
}
<StackPanel>
    <ListView x:Name="listView">
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
                <EventSetter Event="MouseEnter" Handler="ListBoxItem_MouseEnter" />
            </Style>
        </ListView.ItemContainerStyle>
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Items"/>
            </GridView>
        </ListView.View>
    </ListView>
    <StatusBar VerticalAlignment="Center">
        <StatusBarItem>The value is:</StatusBarItem>
        <StatusBarItem x:Name="retrievedText" />
    </StatusBar>
</StackPanel>
private void ListBoxItem_MouseEnter(object s, MouseEventArgs e)
{
    var item = e.OriginalSource as ListBoxItem;
    retrievedText.Content = item.Content;
}