【问题标题】:Prevent SelectionChanged event during DragDrop WPF在 DragDrop WPF 期间防止 SelectionChanged 事件
【发布时间】:2016-03-17 11:16:35
【问题描述】:

我正在使用 Telerik 控件开发具有 MVVM 模式的 WPF 应用程序。

功能:

我正在使用telerik:RadListBox,它在运行时绑定了一个集合。我可以重新排序 RadListBox 中的项目。

问题:

当我在DragLeave 事件之后RadListBox 内的DragDrop 项目时,SelectionChanged 事件被触发。

XAML:

<telerik:RadListBox x:Name="lstMarketSeries" ItemsSource="{Binding MarketSeriesCollection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnSourceUpdated=True, ValidatesOnDataErrors=True}" ItemContainerStyle="{StaticResource DraggableListBoxItem}" DragLeave="lstMarketSeries_DragLeave" SelectionMode="Extended"  telerik:StyleManager.Theme="Windows8" SelectionChanged="MarketSeriesCommit_SelectionChanged">
</telerik:RadListBox>

XAML.cs:

private void MarketSeriesCommit_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {

 }

private void lstMarketSeries_DragLeave(object sender, DragEventArgs e)
 {        

 }

有什么方法可以限制在DragLeave 事件之后触发的 SelectionChanged 事件?

【问题讨论】:

  • 不添加处理程序怎么样?这对你有用吗?
  • @tgpdyk :不,我需要处理程序来操作一些值。

标签: c# wpf xaml mvvm telerik


【解决方案1】:

我不认为这是防止选择事件 hadler 触发的好主意。但是您可以尝试添加标志 IsInDrag(boolean) 并在 darag/drop 操作期间进行管理(开始拖动时为 true,进入最终选择更改处理程序时为 false),此外,当您输入 SelectionChanged 事件处理程序和标志时为真,您将其设置为假并离开处理程序(此外,您可以将 SelectionChangedEventArgs 的句柄属性设置为真),仅此而已。

问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 2010-11-20
    • 1970-01-01
    相关资源
    最近更新 更多