我正在尝试返回列表视图DriverListView
中的第一列:
但我得到的只是:
到目前为止,这是我的代码:
private void DriverListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (DriverListView.SelectedItems.Count == 0) return;
MessageBox.Show(DriverListView.SelectedItems[0].ToString());
}
的ListView:
<ListView x:Name="DriverListView" HorizontalAlignment="Left" Height="627" Margin="15,13,0,0" Grid.Row="1" VerticalAlignment="Top" Width="577" Grid.ColumnSpan="3" FontSize="14" SelectionChanged="DriverListView_SelectionChanged">
<ListView.View>
<GridView>
<GridViewColumn Width="100" Header="Driver" DisplayMemberBinding="{Binding DNo}" />
<GridViewColumn Width="150" Header="Paid Date" DisplayMemberBinding="{Binding PDate}" />
<GridViewColumn Width="100" Header="Rent Paid" DisplayMemberBinding="{Binding PRent}" />
<GridViewColumn Width="125" Header="Status" DisplayMemberBinding="{Binding Status}" />
</GridView>
</ListView.View>
</ListView>
可能出现什么问题?它似乎是返回对象而不是文本值,这是不正确的。
答案 0 :(得分:1)
我假设您的DriverListView是一个继承自ListView的类。 ListView.Items接受要存储的对象。因此,如果您使用DriverListView.SelectedItems [0],您将获得ListView中的第一个选定行。尝试将其转换为正确的类型。
例如:
public class MyClass
{
public string MyProperty1
{
get;
set;
}
public string MyProperty2
{
get;
set;
}
public MyClass(string prop1, string prop2)
{
MyProperty1 = prop1;
MyProperty2 = prop2;
}
}
我假设您已将MyClass的对象添加到DriversListView
DriversListView.Items.Add(new MyClass("hello", "world"));
因此,您的DriverListView包含MyClass类的多个对象。所选的一个存储在DriverListView.SelectedItems Collection的第一项中。 因此,您可以将其强制转换为MyClass以读取属性。
MyClass selectedItem = (MyClass)DriverListView.SelectedItems[0];
现在你可以使用
了selectedItem.MyProperty1