C# 在具有数据绑定的多列ListView中检索鼠标指针上的单元格值
我想从MouseEnter事件的C# 在具有数据绑定的多列ListView中检索鼠标指针上的单元格值,c#,wpf,listview,data-binding,mouseevent,C#,Wpf,Listview,Data Binding,Mouseevent,我想从MouseEnter事件的列表视图中的一行中检索汽车名称列中的值,并将结果显示在文本块中 我怎样才能做到这一点 xaml cs public Car SelectedCar{get;set;} 公共主窗口() { 初始化组件(); 列出车辆=新列表(); int i=0; 字符串[]名称={“Sentra”、“IS”、“Camry”、“s2000”}; 字符串[]make={“日产”、“雷克萨斯”、“丰田”、“本田”}; 字符串[]年={“2000”、“2011”、“2013”、“20
列表视图
中的一行中检索汽车名称列中的值,并将结果显示在文本块
中
我怎样才能做到这一点
xaml
cs
public Car SelectedCar{get;set;}
公共主窗口()
{
初始化组件();
列出车辆=新列表();
int i=0;
字符串[]名称={“Sentra”、“IS”、“Camry”、“s2000”};
字符串[]make={“日产”、“雷克萨斯”、“丰田”、“本田”};
字符串[]年={“2000”、“2011”、“2013”、“2004”};
foreach(名称中的字符串s)
{
添加(新车(){Name=Name[i],Make=Make[i],Year=Year[i]});
i++;
}
carList.ItemsSource=汽车;
}
公车
{
公共字符串名称{get;set;}
公共字符串Make{get;set;}
公共字符串年份{get;set;}
}
私人无效卡利斯特·穆塞内特(对象发送者,穆塞文塔格e)
{
var carName=“;//悬停时显示的汽车名称
Text=carName;
}
试试这个:
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>
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;
}
<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>
private void ListBoxItem_MouseEnter(object s, MouseEventArgs e)
{
var item = e.OriginalSource as ListBoxItem;
var car = item.Content as Car;
textbox.Text = car.Name;
}