Елементи на 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