2013-02-11 4 views
0

Я создал кнопку, и написал свое поведение, чтобы очистить вид рассеяния, но не работал:Элементы WPF Scatterview - как очистить все элементы, нажав кнопку?

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);    
     } 

До этого я думал сбросить заявку на этот код, который не работал либо: (Я добавил с помощью системы .Diagnostics;)

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

Часть XAML:

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

вы можете мне сказать, что я скучаю, благодаря

+0

Вашего названия вопрос «как очистить все элементы ...», но ваш код предполагает, что вы фактически хотите удалить только конкретный ScatterViewItem, содержащий кнопку из ScatterView. Пожалуйста, уточните, чего вы хотите достичь. Было бы также интересно увидеть XAML, где объявлена ​​кнопка. Я уверен, что все вещи VisualTree действительно не нужны. – Clemens

+0

Я прав. этот код не работает, что я хочу. Может быть, лучше сбросить приложение. Но это тоже не сработало. Я добавляю код сейчас. – sgizm

ответ

0

Вы можете просто дать ScatterView имени

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

, а затем получить доступ к нему из кода позади:

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

Я сделал именно то, что вы сказали, и это сработало, спасибо! – sgizm

Смежные вопросы