Silverlight列表框绑定问题

时间:2011-01-27 22:13:26

标签: silverlight

我有一个列表,它绑定到一个可观察的自定义类集合。工作完美。

我想做什么我们在最后一行中添加一行,当它进入视图时它不应该是可观察集合的一部分它应该触发一个函数来将更多项目加载到列表框中。

由于 Erphan Rajput

2 个答案:

答案 0 :(得分:0)

ListBox默认模板如下所示:

<Border ...>
  <ScrollViewer x:Name="ScrollViewer" ...>
    <ItemsPresenter />
  </ScrollViewer>
</Border>

ItemsPresenter是从ItemsSource呈现元素的那个。

如何将默认模板覆盖为:

<Border ...>
  <ScrollViewer x:Name="ScrollViewer" ...>
    <StackPanel>
      <ItemsPresenter ... />
      <!-- Your Control Here -->
    </StackPanel>
  </ScrollViewer>
</Border>

答案 1 :(得分:0)

我已经找到了一种方法,请考虑目前Silverlight控件的限制,这是否是正确的方法。

在XAML中

<ListBox x:Name="MyListBox" ItemsSource="{Binding MyObservableCollection}"
    ItemTemplate="{StaticResource ItemDisplayTemplate}"
    ManipulationCompleted="MyListBox_ManipulationCompleted"/>
CS中的

private void MyListBox_ManipulationCompleted(object sender,
        System.Windows.Input.ManipulationCompletedEventArgs e)
{
    ScrollViewer sv = Utility.FindScrollViewerRecursive((ListBox)sender);
    int a = Int32.Parse(Math.Round(sv.VerticalOffset).ToString()) +
        Int32.Parse(Math.Round(sv.ViewportHeight).ToString());
    if ((a + 1) >= sv.ExtentHeight)
    {
        Debug.WriteLine("Should start loading new items in background");
    }
    Debug.WriteLine(sv.VerticalOffset + " - " + sv.ViewportHeight + " - " + sv.ExtentHeight);
}

我从这里http://blogs.msdn.com/b/rohantha/archive/2010/09/12/silverlight-wp7-list-scroll-with-items-as-image-description-from-web-bing-image-search.aspx

采取了FindScrollViewerRecursive

我会尽快发布完整的示例源代码...现在请建议这种方法是否正常。