当点击C#地铁应用程序时,从列表视图中选择文本

本文关键字:列表 视图 文本 选择 地铁 应用程序 | 更新日期: 2023-09-27 18:28:23

我有一个列表视图,我从API填充它。。我希望它用我单击时在文本块中找到的值填充一个文本框。。

我的列表视图。。。

<ListView Width="300" Height="134" x:Name="lsvObjectives" IsItemClickEnabled="True" SelectionMode="Multiple" ItemsSource="{Binding Source={StaticResource cvsObjectives}}" ItemClick="lsvObjectives_ItemClick">
                                <ListView.ItemsPanel>
                                    <ItemsPanelTemplate>
                                        <WrapGrid Orientation="Horizontal" HorizontalChildrenAlignment="left"/>
                                    </ItemsPanelTemplate>
                                </ListView.ItemsPanel>
                                <ListView.ItemContainerStyle>
                                    <Style TargetType="ListViewItem">
                                        <Setter Property="Padding" Value="0"/>
                                        <Setter Property="Margin" Value="-7"/>
                                    </Style>
                                </ListView.ItemContainerStyle>
                                <ListView.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Vertical" Margin="0,0,0,0" HorizontalAlignment="Center" >
                                            <StackPanel Orientation="Horizontal" Width="310" Height="33" Background="#FFE9D5F0" HorizontalAlignment="Left">
                                                <StackPanel Width="270" VerticalAlignment="Center" Margin="10,5,0,0">
                                                    <TextBlock Text="{Binding objective}" Style="{StaticResource ContentTextBlockStyle}" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="13"/>
                                                </StackPanel>                                               
                                            </StackPanel>
                                        </StackPanel>
                                    </DataTemplate>
                                </ListView.ItemTemplate>
                            </ListView>

这就是我填充列表的方式:

 private async void getObjectives()
         {
             string getObjectives = baseAddress + "unitPlansDetailsByUnit/1";
             var content = await httpClient.GetStringAsync(new Uri(getObjectives));
             objectivesHelper data = JsonConvert.DeserializeObject<objectivesHelper>(content);
             foreach (var item in data.result)
             {
                 cvsObjectives.Source = data.result;
             }
         }

我的课程:

 public class objectives
    {
        public int id { get; set; }
        public string objective { get; set; }
    }
    class objectivesHelper
    {
        public List<objectives> result { get; set; }
    }

我无法从列表视图中的文本块中读取值。。

有人好心帮我做这件事。。任何形式的帮助都将不胜感激。。。。

当点击C#地铁应用程序时,从列表视图中选择文本

您可以通过将ItemClickEventArgs.ClickedItem强制转换为您的类型目标来读取lsvObjectives_ItemClick方法中的值。

例如:

private void lsvObjectives_ItemClick(object sender, ItemClickEventArgs e)
{
    objectives item = e.ClickedItem as objectives;
    var itemText = item.objective;
    youtTextBox.Text = item.Description.ToString();
}