Здравствуйте, я использую Gong WPF для изменения порядка Items
внутри ListBox
<Window x:Class="ComboBoxIssue.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:ComboBoxIssue"
xmlns:dd="urn:gong-wpf-dragdrop"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<ListBox
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
ItemsSource="{Binding Layers}">
<ListBox.ItemTemplate>
<DataTemplate>
<local:UserControl1/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
GongWpf предоставляет AttachedProperties
для включения перетаскивания в ListBox:
dd:DragDrop.IsDragSource="True"
dd:DragDrop.IsDropTarget="True"
ListBox ItemSource
привязан к наблюдаемой коллекции Layer
в основной ViewModel
.
public class ViewModel
{
public ViewModel()
{
Layers = new ObservableCollection<Layer> { new Layer(), new Layer(), new Layer(), new Layer() };
}
public ObservableCollection<Layer> Layers { get; }
}
На данный момент Layer - это просто пустой класс, используемый для отображения проблемы:
public class Layer
{
}
UserControl
, используемый как DataTemplate
, содержит ComboBox
:
<ComboBox Height="25" Width="100">
<ComboBoxItem>HELLO</ComboBoxItem>
<ComboBoxItem>BONJOUR</ComboBoxItem>
<ComboBoxItem>NIHAO</ComboBoxItem>
</ComboBox>
Теперь, когда я переупорядочиваю элементы с помощью перетаскивания в пределах ListBox
, выброшенный ComboBox
SelectedItem
больше не виден.
Почему?
Спасибо