【问题标题】:Select text from a list view when that is cliked C# Metro App单击 C# Metro App 时从列表视图中选择文本
【发布时间】:2015-12-30 05:26:09
【问题描述】:

我有一个列表视图,我从一个 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# windows-store-apps microsoft-metro


    【解决方案1】:

    您可以通过将 ItemClickEventArgs.ClickedItem 强制转换为您的类型 objectives 来读取 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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-16
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 1970-01-01
      • 2017-12-08
      • 1970-01-01
      相关资源
      最近更新 更多