将一些文本从 ListView ItemTemplate 复制到 UWP 中的字符串

Copy some text from ListView ItemTemplate to a string in UWP

我在 XAML 中有这个 ListView:

<ListView x:Name="listView" Margin="10,72,10,120" Background="#7F000000" BorderBrush="#FF00AEFF" BorderThickness="1">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <StackPanel BorderThickness="0,0,0,1">
                        <TextBlock Text="{Binding SSID}" Foreground="#FF067EB6" Margin="0,5,0,0"></TextBlock>
                        <TextBlock Text="{Binding BSSID}" Foreground="#FF067EB6"></TextBlock>
                        <TextBlock Text="{Binding NumOfBars}" Foreground="#FF067EB6"></TextBlock>
                        <TextBlock Text="{Binding WpsPin}" Foreground="#FF067EB6" Margin="0,0,0,5"></TextBlock>
                    </StackPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

后面的代码是这样的:

class Networks
{
    public string SSID { get; set; }
    public string BSSID { get; set; }
    public string NumOfBars { get; set; }
    public string WpsPin { get; set; }
}

而这一个要使用 ListView:

listView.ItemsSource = null;
ObservableCollection<Networks> nets = new ObservableCollection<Networks>();
nets.Add(new Networks() { SSID = "SSID: " + networkSSID, BSSID = "BSSID: " + network.Bssid, NumOfBars = "Signal: " + network.SignalBars.ToString() + "/4", WpsPin = "WPS Pin: " + wpspin });
listView.ItemsSource = nets;

现在,我想获取ItemSource中选中项的内容,并将其放入一个字符串中。例如,我想获取所选项目的 "WpsPin" 值。

我该怎么做?

您可以订阅ListView.SelectionChanged事件并在代码中实现,如下所示:

XAML:

<ListView ... SelectionChanged="SelectionChanged">

C#:

private void SelectionChanged(object sender, SelectionChangedEventArgs e) {
    Networks network = e.AddedItems.FirstOrDefault() as Networks;
    if (network == null) return;

    System.Diagnostics.Debug.WriteLine(network.WpsPin);
}