2015-11-23 1 views
1

J'ai un élément de sorcière de contrôle ListView est composé par deux TextBlocks comme ça:XAML Get valeur de texte de l'article de ListViewItem

 <ListView x:Name="resultsList" ItemsSource="{Binding}" HorizontalAlignment="Left" Height="470" Margin="10,0,0,0" VerticalAlignment="Top" Width="342" FontSize="21.333" BorderThickness="0" ItemClick="RedirectPage" IsItemClickEnabled="True" SelectionMode="None"> 
      <ListView.ItemTemplate> 
       <DataTemplate> 
        <StackPanel Margin="0,-4,0,-4"> 
         <StackPanel.Resources> 
          <Style TargetType="TextBlock"> 
           <Setter Property="Margin" Value="0,0,0,0" /> 
          </Style> 
         </StackPanel.Resources> 
         <TextBlock FontSize="35" Text="{Binding target_name}" /> 
         <TextBlock FontSize="15" Text="{Binding type_name}" Opacity="30" Margin="0, 0, 0 ,30"/> 
        </StackPanel> 
       </DataTemplate> 
      </ListView.ItemTemplate> 
     </ListView> 

Dans le code derrière je suis en train de faire en tant que chaîne de la valeur de texte de premier élément TextBlock .

string targetName; 

targetName = resultsList.SelectedItem.ToString(); 

Je veux que "targetName" Variable то affecter la valeur de texte (Text = "{Binding target_name}") de la première TextBlock dans l'élément de ListView.

Je serai très reconnaissant si quelqu'un est capable de m'aider.

+0

avez-vous quelques connaissances sur MVVM? –

+0

vous pouvez récupérer cette valeur très facilement si vous choisissez d'utiliser MVVM. –

Répondre

1

resultsList.SelectedItem doit être l'objet de la collection liée à ListView. Donc, vous pouvez juste le mouler au type approprié et ensuite accéder au membre target_name

1

Itemssource devrait être collection. Vous devez typer la collection pour obtenir la valeur.

class listData { public string target_name { get; set; } public string type_name{ get; set; } }

Vous pouvez obtenir des valeurs comme ce

listData ld= (listData)resultsList.SelectedItem; 
    string targetName =ld.target_name;