Элементы 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);              
        }

До этого я думал сбросить приложение этим кодом, который тоже не работал: (добавлял с помощью System.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"/>

вы можете сказать мне, что я скучаю, спасибо


person sgizm    schedule 11.02.2013    source источник
comment
Название вашего вопроса заключается в том, как очистить все элементы..., но ваш код предполагает, что вы на самом деле имеете в виду удалить только конкретный ScatterViewItem, который содержит кнопку из ScatterView. Пожалуйста, будьте более точны в том, чего вы хотите достичь. Также было бы интересно увидеть XAML, где объявлена ​​кнопка. Я почти уверен, что весь материал VisualTree на самом деле не нужен.   -  person Clemens    schedule 11.02.2013
comment
Да правильно. этот код не работает так, как я хочу. Возможно, лучше сбросить приложение. Но это тоже не сработало. Я добавляю код сейчас.   -  person sgizm    schedule 11.02.2013


Ответы (1)


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

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

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

private void Button1_Click(object sender, RoutedEventArgs e)
{
    scatterView.Items.Clear();
}
person Clemens    schedule 11.02.2013