C# 捕获ListView的Reodermode-WP8.1

C# 捕获ListView的Reodermode-WP8.1,c#,listview,windows-phone-8,win-universal-app,C#,Listview,Windows Phone 8,Win Universal App,我需要知道ListView何时退出重新排序模式。当我长按listview时,我正在启用ReorderMode。重新排序完成后,我按下hardware back按钮,listview将退出重新排序模式。有没有办法检查一下 我已经尝试了数据绑定ReorderMode属性。但它不捕获ReOrderMode disabled状态 xaml 有什么想法/解决方法吗?我认为您的ListView的数据上下文是错误的。您将某些集合绑定到ListView,但此集合没有ReorderMode属性。调试应用程序时,您

我需要知道ListView何时退出重新排序模式。当我长按listview时,我正在启用ReorderMode。重新排序完成后,我按下hardware back按钮,listview将退出重新排序模式。有没有办法检查一下

我已经尝试了数据绑定ReorderMode属性。但它不捕获ReOrderMode disabled状态

xaml


有什么想法/解决方法吗?

我认为您的ListView的数据上下文是错误的。您将某些集合绑定到ListView,但此集合没有ReorderMode属性。调试应用程序时,您可以在输出窗口中查找绑定错误

      <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}">
    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));
        }
    }