我正在实现动态拖放多个列表框,我需要在运行时找出集合名称。
我的意思 - >在执行 OnDrop 事件时,我必须将项添加到现有集合(集合可以有多个成员),或者替换现有项(在只能有一个成员的集合中)。我想做以下事情:
var collection = (sender as System.Windows.Controls.ListBox).ItemsSource as IList;
if (collection.GetName() == "col_AllData")
{
//allow more than one member
}
else
{
//allow only one member
}
我可以尝试检查 typeof(),但所有项目来源都属于同一类型。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我设法通过创建一个新的Dependency属性来实现:
public static readonly DependencyProperty AllowMultipleMembersProperty =
DependencyProperty.RegisterAttached("AllowMultipleMembers", typeof(bool), typeof(IP_ListBoxDragDropBehavior_New), new PropertyMetadata(new PropertyChangedCallback(OnAllowMultipleMembersPropertyChanged)));
并在我的 OnDrop 事件中,我检查以下内容:
bool? bMoreMembers = this.AssociatedObject.GetValue(AllowMultipleMembersProperty) as bool?;