2013-12-07 6 views
0

MouseEnter 이벤트의 ListView a에있는 행 셀 값을 검색하고 싶습니다. 으로 ListView 항목이 생성됩니다.ListView : MouseEnter에서 행 값 검색

SelectedItem을 확인하지 않고 어떻게 가능합니까?

업데이트

우리는 항목에게 이벤트 처리 할 수있는 기회를 제공하기 위해 ItemContainerStyle을 무시할 수

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; 
    } 

답변

1

XAML

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

CS :

XAML :

<ListBox> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem} }"> 
      <EventSetter Event="MouseEnter" Handler="ListBoxItem_MouseEnter" /> 
     </Style> 
    </ListBox.ItemContainerStyle> 
</ListBox> 

CS : 귀하의 경우

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; 
} 

:

XAML :

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

CS : BasedOn = "{정적 리소스`에서

private void ListBoxItem_MouseEnter(object s, MouseEventArgs e) 
{ 
    var item = e.OriginalSource as ListBoxItem; 
    retrievedText.Content = item.Content; 
} 
+0

변경 유형 {x : ListBoxItem 타입}'i f listboxitem에 대해 사용자 정의 된 스타일이 있습니다. 그리고 ListBox를 ListView로 변경하여 ListView에 위의 ListBox 코드를 쉽게 적용 할 수 있습니다. – Eben

+0

답변 해 주셔서 감사합니다. 귀하의 코드를 추가하려했지만 작동하지 않았습니다. 코드로 내 대답을 업데이트했습니다. 내 목표는 마우스를 가져 가면 값을 가져 와서 상태 표시 줄 항목에 추가하는 것입니다. – MCSharp

+0

사례에 대한 코드가 추가되었습니다 ... – Eben