Tôi có một số Listbox trong ứng dụng của mình được ràng buộc với ObservableCollections và tôi muốn tạo hoạt ảnh cho một mục nếu nó bị xóa.Hoạt hình mục bị xóa trong Listbox
Tôi đã tìm thấy câu hỏi về làm động các mục được thêm bằng cách sử dụng sự kiện FrameworkElement.Loaded, nhưng tất nhiên điều đó không hoạt động theo cùng một cách với sự kiện Đã tải xuống.
Có cách nào để thực hiện việc này theo cách có thể được sử dụng trong bảng dữ liệu không?
EDIT: Tôi đã kết nối với sự kiện CollectionChanged trong ItemsSource của mình và cố gắng áp dụng hoạt ảnh theo cách thủ công. Hiện tại có vẻ như sau:
ListBoxItem item = stack.ItemContainerGenerator.ContainerFromIndex(0) as ListBoxItem;
item.LayoutTransform = new ScaleTransform(1, 1);
DoubleAnimation scaleAnimation = new DoubleAnimation();
scaleAnimation.From = 1;
scaleAnimation.To = 0;
scaleAnimation.Duration = new Duration(new TimeSpan(0, 0, 0, 0, 500));
ScaleTransform transform = (ScaleTransform)item.LayoutTransform;
transform.BeginAnimation(ScaleTransform.ScaleYProperty, scaleAnimation);
Vấn đề là nó hoàn toàn không hoạt động. Mục vẫn chỉ xuất hiện. Mục vẫn ở đó khi phương thức được gọi, vì vậy nó sẽ không phát hình động trước khi nó biến mất? Hoặc tôi đang làm nó hoàn toàn sai?
Trong trường hợp của tôi, tôi có 3dparty INotifyCollectionChanged được thực thi bởi Obtics và thỉnh thoảng được thay đổi bởi sự kiện phía máy chủ ... Tôi không biết làm thế nào để animate item remove here ... Có lẽ tôi nên bọc nó bằng tùy chỉnh INotifyCollectionChanged và trì hoãn việc xóa sự kiện tùy chỉnh tăng lên hoạt hình. Nhưng điều này có thể chỉ hoạt động cho 1 mục cho mỗi sự kiện và mỗi hoạt ảnh. Hợp đồng INotifyCollectionChanged giả định rằng mọi cá thể thay đổi bộ sưu tập của họ ngay lập tức bởi các sự kiện và nếu tôi có sự chậm trễ - sự kiện tiếp theo sẽ gửi cho tôi chỉ số phần tử giả định rằng tôi đã duy trì bộ sưu tập của mình theo chỉ mục trước đó. –