zoukankan      html  css  js  c++  java
  • WPF中ListView滚动到当前行的几种方法

    其实ListBox和ListView在这里是一样的。

    1、使用方法ScrollIntoView

    ListView继承自ListBox,ListBox有这个方法,可以滚动到指定的item。

    listBox.ScrollIntoView(listBox.Items[listBox.Items.Count - 1]);//移动到最后一行

    使用的时候需要给控件加上x:Name。如果要用数据驱动的话,感觉上直接后台调用前台的控件是不太合适的。所以有第二种方法Behavior。

    2、使用Behavior

    上链接:https://github.com/microsoft/XamlBehaviorsWpf

    引入命名空间

     xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"

    在ListView下使用

    <behaviors:Interaction.Behaviors>
        <local:AutoScrollBehavior />
    </behaviors:Interaction.Behaviors> 

    类的实现

        public class AutoScrollBehavior : Behavior<ListBox>
        {
            protected override void OnAttached()
            {
                base.OnAttached();
                this.AssociatedObject.SelectionChanged += new SelectionChangedEventHandler(AssociatedObject_SelectionChanged);
            }
            void AssociatedObject_SelectionChanged(object sender, SelectionChangedEventArgs e)
            {
                if (sender is ListBox listBox)
                {
                    if (listBox.SelectedItem != null)
                    {
                        listBox.Dispatcher.BeginInvoke((Action)delegate
                        {
                            listBox.UpdateLayout();
                            listBox.ScrollIntoView(listBox.SelectedItem);//在这里使用一的方法
                        });
                    }
                }
            }
    
            protected override void OnDetaching()
            {
                base.OnDetaching();
                this.AssociatedObject.SelectionChanged -= new SelectionChangedEventHandler(AssociatedObject_SelectionChanged);
            }
        }

    ListBox控件需要绑定SelectedItem到数据源上,这样通过修改绑定的数据源就可以实现数据驱动的滚动效果了。

  • 相关阅读:
    用记事本编写C#程序并运行C#代码
    C#传递参数大集合
    JQuery或JavaScript获取网页的宽度、高等
    mybatis
    mysql 函数
    eclipse sts 常规操作
    谷歌浏览器自动翻译当前网页
    推荐Calendar操作日期
    IDEA 快捷键
    eclipse sts 快捷键
  • 原文地址:https://www.cnblogs.com/pasoraku/p/15132997.html
Copyright © 2011-2022 走看看