none
ListBox item绑定是显示最下面的一条 RRS feed

  • 问题

  • ObservableCollection<string> data=new ObservableCollection<string>();
    for (int i = 0 ; i < 20 ;i++ )
                {
                    string str = "len" + i.ToString();
                    data.Add(str);
                }
                listBox1.ItemsSource = data;
                listBox1.ScrollIntoView(data[data.Count-1]);

    在我的data初始化完成后调用绑定和
    listBox1.ScrollIntoView(data[data.Count-1]); 可以显示最下面的item

    但是现在情况是data的的初始化工作是异步的时候,我 绑定data的时候,他还没初始化完成 所以listBox1.ScrollIntoView(data[data.Count-1]);就没有效果了

    除了我在data初始化完成的时候通知调用listBox1.ScrollIntoView(data[data.Count-1]); 的方法  有没有ListBox自己可以解决这个问题的办法

    2012年3月29日 5:07

答案

  •     <ListBox x:Name="list" ScrollViewer.ScrollChanged="list_ScrollChanged" ItemsSource="{Binding}">

    C#:

        private void list_ScrollChanged(object sender, ScrollChangedEventArgs e)
        {
          if (e.ExtentHeightChange != 0 || e.ViewportHeightChange != 0)
          {
            ScrollViewer sv = e.OriginalSource as ScrollViewer;
            if (sv != null) sv.ScrollToBottom();
          }
        }

    Sincerely,

    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 小携 2012年3月30日 1:36
    • 取消答案标记 小携 2012年3月30日 2:38
    • 已标记为答案 小携 2012年3月30日 3:06
    2012年3月29日 8:47
    版主

全部回复