简体   繁体   English

捕获ListView的ReorderMode-WP8.1

[英]Capturing ReorderMode for ListView - WP8.1

I need to know when the ListView comes out of reorder mode. 我需要知道ListView何时退出重新排序模式。 When I long press on the listview, I'm enabling the ReorderMode. 长按列表视图时,将启用ReorderMode。 After the reordering is done, I press hardware back button and the listview comes out reorder mode. 重新排序完成后,我按硬件后退按钮,列表视图就会出现重新排序模式。 Is there any way to check capture that? 有什么办法可以检查捕获情况吗?

I have tried data binding the ReorderMode property. 我尝试了数据绑定ReorderMode属性。 But it does not capture the ReOrderMode disabled state. 但是它不会捕获ReOrderMode禁用状态。

xaml a

      <ListView x:Name="FolderListView" ItemsSource="{Binding}"  
                              SelectionMode="None"
                              IsTapEnabled="True" 
                              Tapped="ListItemTapped" AllowDrop="True" CanDragItems="True"              
                              IsSwipeEnabled="True" Holding="OnItemHold" 
                              ReorderMode="{Binding ReorderMode, Mode=TwoWay}">

code-behind 代码隐藏

    private void OnItemHold(object sender, HoldingRoutedEventArgs e)//Long Press on ListView
    {
        FolderListView.ReorderMode = ListViewReorderMode.Enabled;
        ReorderModeChanged();
    }        

    public ListViewReorderMode ReorderMode
    {
        get
        {
            return _reorderMode;
        }
        set
        {
            if (_reorderMode != value)
            {
                _reorderMode = value;
                OnPropertyChanged("ReorderMode");
                this.ReorderModeChanged();
            }
        }
    }

    private void ReorderModeChanged()
    {
        DBManager dbMan = DBManager.Instance;

        if (this.ReorderMode == ListViewReorderMode.Enabled)
        {
            dbMan.IsReorderEnabled = true;
        }
        else
        {
            dbMan.IsReorderEnabled = false;
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        if (this.PropertyChanged != null)
        {
            this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

Any ideas/work arounds? 有任何想法/解决方法吗?

I think you have wrong DataContext for your ListView. 我认为您的ListView的DataContext错误。 You bind some collection to ListView, but this collection does not have ReorderMode property. 您将某些集合绑定到ListView,但是此集合没有ReorderMode属性。 You can look for binding errors in Output window while debugging your app. 您可以在调试应用程序时在“输出”窗口中查找绑定错误。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM