没有shift键的WPF DataGrid MultiColumn排序

时间:2011-05-05 14:16:00

标签: wpf sorting datagrid

当用户按住Shift键单击多个列标题时,WPF DataGrid的默认行为允许多列排序。有没有办法改变这种行为,以便不需要Shift键?我已经处理了datagrid上的排序事件,以便每个列在三个排序状态(升序,降序和无排序)之间循环,只要按住shift键,这一切都按预期工作,但我会如果用户单击列标题以添加排序而不按Shift键,则DataGrid不会重置所有其他列的排序。

2 个答案:

答案 0 :(得分:1)

我找到了一个似乎有点黑客的解决方案,但它确实有效。这篇文章让我指出了正确的方向:http://blogs.msdn.com/b/vinsibal/archive/2008/08/29/wpf-datagrid-tri-state-sorting-sample.aspx?PageIndex=2。这让我理解每列的SortDirection并没有以任何方式与ItemsSource SortDescriptions绑定。所以我所做的是订阅Datagrid的Sorting事件并重置ItemsSource SortDescriptions集合中引用的每列的SortDirection。显然,不按shift会清除每列的sortdirection,但不会重置SortDescriptions。

答案 1 :(得分:0)

我正在处理同样的问题,但没有人展示可以解决这个问题的代码。这个问题很老,但我希望这个解决方案对寻求者有用。

 upstream app_server {
    server x.x.x.x:8000 fail_timeout=0;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    client_max_body_size 4G;
    server_name _;

    keepalive_timeout 5;

    # Your Django project's media files - amend as required
    location /media  {
        alias /home/ws-admin/foo/media;
    }

    # your Django project's static files - amend as required
    location /static {
        alias /home/ws-admin/foo/static;
        expires 365d;
    }

    location / {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_redirect off;
        proxy_pass http://app_server;
    }
}