【问题标题】:RadListBox vs RadListBoxItem DragDrop WPFRadListBox 与 RadListBoxItem DragDrop WPF
【发布时间】:2016-07-04 19:53:44
【问题描述】:

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

我正在使用绑定集合的telerik:RadListBox。我的问题是,当集合绑定到 RadListBox 时,集合将变为 RadListBoxRadListBoxItem

XAML:

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

XAML.cs:

/// <summary>
/// Event fired when series are dragged and moved.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lstMarketSeries_DragLeave(object sender, DragEventArgs e)
{

   if (sender is RadListBox) // True
    {

    }

   if(sender is RadListBoxItem) //False Why??
    {

    }
}

当一个集合被绑定时,它应该作为项目返回正确吗?为什么我将它作为RadListBox 本身而不是RadListBoxItem 得到它?

现在我需要那个 Draggable 对象作为RadListBoxItem。有什么办法吗?

仅供参考,

请看这里ListBoxDragDrop 发件人是ListBoxItem 而不是ListBox

【问题讨论】:

    标签: c# wpf telerik


    【解决方案1】:

    请参阅docs

    发件人是

    附加事件处理程序的对象。

    就是这样。

    您正在拖动一个项目,但该事件已附加到容器。

    <telerik:RadListBox ... DragLeave="lstMarketSeries_DragLeave" ... >`
    

    因此,当 RadListBox 发生DragLeave 事件时,会触发指定的处理程序(实际上由您设置)。 sender 设置为 RadListBox,因为处理程序附加到它,而不是项目。

    您误解了您所指的示例。仔细阅读示例代码。在示例中,事件处理程序设置为ItemContainerStyle which is used to inflate every item。在示例中,我们看到了单独附加到每个项目的处理程序,因此处理程序的sender 被设置为项目而不是控件本身。

    如果您需要sender 来删除一个项目,您也必须这样做 - 创建一个样式并为其附加一个处理程序。

    【讨论】:

    • 我拖的是RadListBox还是RadListBoxItem
    • @SanthoshKumar 我现在明白你有什么困惑。查看更新的答案。
    • 我现在很清楚了。但我拖的是RadListBox 还是RadListBoxItem?如果它是 RadListBox 我如何将其更改为 RadListBoxItem 并触发该事件?
    • @SanthoshKumar 与您的示例显示的方式相同。创建一个 ItemContainerStyle 并将处理程序附加到它而不是框。我现在无法访问 Telerik 库,所以很遗憾我无法提供确切的代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多