2013-02-11 3 views
0

J'ai créé un bouton et a écrit son comportement pour effacer la vue de dispersion, mais il n'a pas fonctionné:WPF Articles sur Scatterview - comment effacer tous les articles en cliquant sur un bouton?

private void Button1_Click(object sender, RoutedEventArgs e) 
     { 
      DependencyObject parent = VisualTreeHelper.GetParent(this); 
      ScatterViewItem svi = null; 
      while (parent as ScatterView == null) 
      { 
       if (parent is ScatterViewItem) 
        svi = parent as ScatterViewItem; 
       parent = VisualTreeHelper.GetParent(parent); 
      } 

      ((ScatterView)parent).Items.Remove(svi);    
     } 

Avant cela, je pensais que pour réinitialiser l'application par ce code qui ne fonctionnait pas non plus: (j'ai ajouté using System .Diagnostics;)

private void Button1_Click(object sender, RoutedEventArgs e) 
    {  
     Process.Start(Application.ResourceAssembly.Location);  
     Application.Current.Shutdown();      
    } 

le XAML:

<s:SurfaceButton Content="Clear" Name="Button1" Click="Button1_Click" VerticalAlignment="Bottom" HorizontalAlignment="Center"/> 

pouvez-vous me dire ce qui me manque, grâce

+0

Votre titre de la question est « comment effacer tous les éléments ... », mais Votre code suggère que vous voulez réellement supprimer seulement le ScatterViewItem particulier qui contient le bouton du ScatterView. S'il vous plaît soyez plus précis sur ce que vous voulez réaliser. Il serait également intéressant de voir le code XAML où le bouton est déclaré. Je suis à peu près sûr que tout le matériel VisualTree n'est pas vraiment nécessaire. – Clemens

+0

Ya c'est vrai. ce code ne fonctionne pas ce que je veux. Peut-être que c'est une meilleure idée de réinitialiser l'application. Mais ça n'a pas marché non plus. J'ajoute le code maintenant. – sgizm

Répondre

0

Vous pouvez simplement donner le ScatterView un nom

<s:ScatterView x:Name="scatterView" ... /> 

et y accéder à partir du code derrière:

private void Button1_Click(object sender, RoutedEventArgs e) 
{ 
    scatterView.Items.Clear(); 
} 
+0

Je l'ai fait exactement vous avez dit et cela a fonctionné, merci! – sgizm

Questions connexes