#c# #wpf
#c# #wpf
Вопрос:
у меня есть список ViewModels
. Список содержит LabelViewModel
и ComboBoxViewModel
и отображает их в a View
. В основном, когда отображается представление, должны быть открыты оба списка со списком. Я пытался использовать IsDropDownOpen
свойство. Первое окно откроется, но выпадающий список очень быстро исчезнет, и только второе окно останется открытым. Похоже, он не может решить, какой из них открыть.
Это моя ViewModel:
public class WortAuswahlCollectionViewModel : ViewModelBase
{
public EventHandler<SelectionChangedEventArgs> AuswahlChanged;
public WortAuswahlCollectionViewModel(List<UniqueString> wortAuswahl)
{
if (wortAuswahl != null)
{
WortAuswahlCollection = new ObservableCollection<UniqueString>(wortAuswahl);
if (WortAuswahlCollection[0].Value.Length > WortAuswahlCollection[1].Value.Length)
{
ComboBoxSize = WortAuswahlCollection[0].Value.Length * 28;
MaxComboBoxSize = ComboBoxSize * 10;
}
else
{
ComboBoxSize = WortAuswahlCollection[1].Value.Length * 28;
MaxComboBoxSize = ComboBoxSize * 10;
}
}
}
private ObservableCollection<UniqueString> m_wortAuswahlCollection;
public ObservableCollection<UniqueString> WortAuswahlCollection
{
get
{
return m_wortAuswahlCollection;
}
set
{
if (m_wortAuswahlCollection != value)
{
m_wortAuswahlCollection = value;
OnPropertyChanged();
}
}
}
private int m_comboBoxSize;
public int ComboBoxSize
{
get
{
return m_comboBoxSize;
}
set
{
if (m_comboBoxSize != value)
{
m_comboBoxSize = value;
OnPropertyChanged();
}
}
}
private int m_maxComboBoxSize;
public int MaxComboBoxSize
{
get
{
return m_maxComboBoxSize;
}
set
{
if (m_maxComboBoxSize != value)
{
m_maxComboBoxSize = value;
OnPropertyChanged();
}
}
}
}
}
XAML:
<Grid>
<ComboBox ItemsSource="{Binding WortAuswahlCollection}" Style="{StaticResource MaterialDesignFilledComboBox}" MinWidth="{Binding ComboBoxSize}" MaxWidth="{Binding MaxComboBoxSize}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path= Value}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
Ответ №1:
Вы не можете открыть два элемента управления со списком одновременно. Внутренний элемент управления всплывающими окнами захватывает мышь при открытии и, таким образом, автоматически закрывается при открытии другого выпадающего списка.
Комментарии:
1. Нет ли способа привязать его? я имею в виду, что эти списки со списком представляют собой 2 viewmodels