public void DragOver(IDropInfo dropInfo)
        {
            if (dropInfo.Data is TreeViewItem)
            {
                return;
            }
            if (dropInfo.Data == dropInfo.TargetItem)
            {
                return;
            }
            var target = dropInfo.InsertIndex;

            switch (dropInfo.Data)
            {
            case Character character:
                if (!(dropInfo.TargetItem is Character))
                {
                    return;
                }
                if (!ObservableCollectionExtensions.IsSamePosition(Characters, character, target).shouldMove)
                {
                    return;
                }
                break;

            case Scene scene:
                if (!(dropInfo.TargetItem is Scene s))
                {
                    return;
                }
                if (s.Tag != scene.Tag)
                {
                    return;                         // This would just make life complicated
                }
                if (!ObservableCollectionExtensions.IsSamePosition(Scenes, scene, target).shouldMove)
                {
                    return;
                }
                break;

            case Variable variable:
                if (!(dropInfo.TargetItem is Variable))
                {
                    return;
                }
                if (!ObservableCollectionExtensions.IsSamePosition(Variables, variable, target).shouldMove)
                {
                    return;
                }
                break;

            default:
                return;
            }

            dropInfo.DropTargetAdorner = DropTargetAdorners.Insert;
            dropInfo.Effects           = DragDropEffects.Move;
        }
Exemplo n.º 2
0
 public void ToBindingList_throws_when_given_null_ObservableCollection()
 {
     Assert.Equal(
         "source",
         Assert.Throws <ArgumentNullException>(() => ObservableCollectionExtensions.ToBindingList <FakeEntity>(null)).ParamName);
 }
Exemplo n.º 3
0
 public static BindingList <T> ToBindingList <T>(this IList <T> list) where T : class
 {
     return(ObservableCollectionExtensions.ToBindingList((ObservableCollection <T>)list));
 }