我正在尝试从ListBox中获取所有值,该ListBox是我从类中绑定数据的。目前这还行不通,它返回了我的类“ Sprints”的路径,但没有返回数据。
这是我的XAML
<ListView Margin="10,27,10,-444" Name="lvDataBinding" Grid.Row="1">
<ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock x:Name="SelectionSprint" Text="Name: " />
<TextBlock Text="{Binding Name}" FontWeight="Bold" />
<TextBlock Text=", " />
<TextBlock MouseLeftButtonUp="SelectionSprint_MouseLeftButtonUp" x:Name="Id" Text="{Binding Id}" Tag="{Binding Id}" FontWeight="Bold" />
<TextBlock Text=" (" />
<TextBlock Text="{Binding Start_Date}" TextDecorations="Underline" Foreground="Blue" Cursor="Hand" />
<TextBlock Text=")" />
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是我的XAML后端Click方法
private void SelectionSprint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var item1 = ((ListBoxItem)lvDataBinding.SelectedValue).Content.ToString();
MessageBox.Show(item1.ToString());
}
存储API数据的类
public class SprintList
{
public List<Sprints> Sprints { get; set; }
}
也是存储API数据的类
public class Sprints
{
public int Id { get; set; }
public string Name { get; set; }
public string Slug { get; set; }
public int Setup { get; set; }
public string Start_Date { get; set; }
public string End_Date { get; set; }
public int ProjectId { get; set; }
public string Created_At { get; set; }
public string Updated_At { get; set; }
}
var item1 = ((ListBoxItem)lvDataBinding.SelectedValue).Content.ToString();
ToString()方法的默认实现,返回类型名称。
要获取数据,您需要将值转换为已知类型:
Sprints item1 = ((ListBoxItem)lvDataBinding.SelectedValue).Content as Sprints;
取决于ListBox填充数据的方式,使用SelectionChanged事件并从SelectedItem获取数据可能会很简单:
Sprints item1 = lvDataBinding.SelectedItem as Sprints;
如果lvDataBinding具有ItemsSource的Sprint的集合,这将起作用