2013-12-08 3 views
0

MouseEnter 이벤트의 ListView 행의 Car Name 열에서 값을 검색하고 결과를 TextBlock에 표시하고 싶습니다.MouseEnter에서 셀 값 가져 오기 데이터 바인딩이있는 다중 열 ListView

어떻게하면됩니까?

XAML

<Grid> 
    <ListView x:Name="carList" VerticalAlignment="Top" MouseEnter="carList_MouseEnter"> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Car" DisplayMemberBinding="{Binding Name}" Width="Auto"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Make}" Header="Make" Width="Auto"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Year}" Header="Year" Width="Auto"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 
    <TextBox x:Name="textbox" Height="23" Margin="5,0,0,5" TextWrapping="Wrap" VerticalAlignment="Bottom"/> 
</Grid> 

CS

public Car SelectedCar { get; set; } 

    public MainWindow() 
    { 
     InitializeComponent(); 


     List<Car> cars = new List<Car>(); 

     int i = 0; 
     string[] name = { "Sentra", "IS", "Camry", "s2000" }; 
     string[] make = { "Nissan", "Lexus", "Toyota", "Honda" }; 
     string[] year = { "2000", "2011", "2013", "2004" }; 

     foreach (string s in name) 
     { 
      cars.Add(new Car() { Name = name[i], Make = make[i], Year = year[i] }); 
      i++; 
     } 

     carList.ItemsSource = cars; 

    } 

    public class Car 
    { 
     public string Name { get; set; } 
     public string Make { get; set; } 
     public string Year { get; set; } 

    } 

    private void carList_MouseEnter(object sender, MouseEventArgs e) 
    { 
     var carName = ""; //Name of car to display on hover 
     textbox.Text = carName; 
    } 

답변

2

이 시도 :

XAML :

<Grid> 
    <ListView x:Name="carList" VerticalAlignment="Top" MouseEnter="carList_MouseEnter"> 
     <ListView.ItemContainerStyle> 
      <Style TargetType="{x:Type ListBoxItem}"> 
       <EventSetter Event="MouseEnter" Handler="ListBoxItem_MouseEnter" /> 
      </Style> 
     </ListView.ItemContainerStyle> 
     <ListView.View> 
      <GridView> 
       <GridViewColumn Header="Car" DisplayMemberBinding="{Binding Name}" Width="Auto"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Make}" Header="Make" Width="Auto"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Year}" Header="Year" Width="Auto"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 
    <TextBox x:Name="textbox" Height="23" Margin="5,0,0,5" TextWrapping="Wrap" VerticalAlignment="Bottom"/> 
</Grid> 

CS :

private void ListBoxItem_MouseEnter(object s, MouseEventArgs e) 
{ 
    var item = e.OriginalSource as ListBoxItem; 
    var car = item.Content as Car; 
    textbox.Text = car.Name; 
} 
+0

위대한 작품입니다. 다시 한번 감사드립니다. – MCSharp

관련 문제