MVVM ListBox ItemSsource获取集合名称

时间:2015-01-15 13:56:18

标签: c# wpf mvvm listbox

我正在实现动态拖放多个列表框,我需要在运行时找出集合名称。

我的意思 - >在执行 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(),但所有项目来源都属于同一类型。

任何帮助都将不胜感激。

1 个答案:

答案 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?;