如何从WPF c#中的列表框从文本框获取所有值?

问题描述 投票:0回答:1

我正在尝试从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; }
    }
c# wpf
1个回答
0
投票
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的集合,这将起作用

© www.soinside.com 2019 - 2024. All rights reserved.