在列表框WP7中反转堆栈项

时间:2013-04-30 10:01:53

标签: c# windows-phone-7 xaml listbox windows-phone-8

我目前正在使用列表框,该列表框显示用户导航到的最近站点。它工作正常,但我需要显示堆栈反转列表,像添加的最新列表应该是旧项目添加的ontop。我尝试不同的方法,但似乎没有用,

这是我添加项目的代码:

        list obj1 = new list();
        obj1.name = (string)webTab1.InvokeScript("eval", "document.title.toString()");
        obj1.phone = menuURL.Text;
        listBox1.Items.Add(obj1);

此代码会不断添加项目,这是不合适的

非常感谢

2 个答案:

答案 0 :(得分:3)

这是您要求的WPF版本,但其代码应与Windows Phone相同。在此示例中,您将看到列表框绑定到已加载的集合。然后,当您单击反向按钮时,集合中的项目将反转。

    <Grid>
        <Button Click="Button_Click" Content="Click to reverse" Width="100" Height="100" Margin="298,106,105,105"></Button>
        <ListBox Name="lb1" HorizontalAlignment="Left" ItemsSource="{Binding urls}" Width="255">    


        </ListBox>
    </Grid>

public partial class MainWindow : Window
{
    public ObservableCollection<String> urls { get; set; }
    public MainWindow()
    {
        InitializeComponent();
        urls = new ObservableCollection<string>();
        this.DataContext = this;
        loadURLsFirstTime();


    }

    public void loadURLsFirstTime()
    {
        urls.Add("www.First.com");
        urls.Add("www.Second.com");
        urls.Add("www.Third.com");
        urls.Add("www.Fourth.com");

    }

    public void reverseUrls()
    {
        Stack<String> stack1 = new Stack<string>();
        foreach (String item in urls)
        {
            stack1.Push(item);
        }
        urls.Clear();
        foreach (String item in stack1)
        {
            urls.Add(item);
        }
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        reverseUrls();
    }
}

答案 1 :(得分:2)

listBox1.Items.Insert(0, obj1);

代替

  

listBox1.Items.Add(OBJ1);